Pythonic - 핸들링
· 약 4분
Handling
파일
- File pointer 여는 법은
f.open(‘test.txt’, ‘w’)
- 이 경우 f.write 후에 f.close 해줘야한다.
with
사용시 close 를 생각하지 않아도 된다.with
구문에서 선언된 변수는 바깥에서 사용가능f.seek(5)
처럼 위치로 이동 가능하다.string.Template
과 함께 뷰 파일에서 사용할 수 있다.
## 예시 1
with open('test.txt', 'w') as f:
f.write('Test')
## 예시 2
with open('test.txt', 'r') as f:
# print(f.read())
while True:
chunk = 2
line = f.read(chunk)
print(line)
if not line:
reak
## 예시 3
## w+ 로 열면 파일이 초기화 됨
with open('test.txt', 'w+') as f:
f.write(s)
# 쓰기 후에 읽기위해 0번째로 이동
f.seek(0)
print(f.read())
## 예시 4
import string
with open('view/mail.tpl', 'r') as f:
t = string.Template(f.read())
## $name, $contents
contents = t.substitute(name='gracefullight', contents='Thanks')
print(contents)
파일 확인
os.path.exsists
os.path.isfile
os.path.isdir
파일 제어
os.rename
os.symlink
: 심볼릭shutil.copy
: 복사pathlib.Path('TouchFilePath').touch()
: 터치 파일
폴더 제어
os.mkdir
os.rmdir
: 빈 디렉토리만 가능shutil.retree
: recursive
CSV
csv.DictWriter
csv.DictReader
임시파일
import tempfile
## 삭제 됨
with tempfile.TemporaryFile(mode='w+') as t:
t.write('hello')
## 삭제 안 됨
with tempfile.NamedTemporaryFile(delete=False) as t:
# print(t.name)
with open(t.name, 'w+') as f:
f.write('hello')
## 삭제되는 디렉토리
with tempfile.TemporaryDirectory() as td:
print(td)
## 삭제 안 되는 디렉토리
temp_dir = tempfile.mkdtemp()
압축
tar
import tarfile
with tarfile.open('test.tar.gz', 'w:gz') as tr:
tr.add('dir')
with tarfile.open('test.tar.gz', 'r:gz') as tr:
tr.extractall(path='dir')
with tr.extractfile('tarball') as f:
print(f.read())
zip
import zipfile
with zipfile.ZipFile('test.zip', 'w') as z:
# 하나의 폴더만 가능
z.write('dir')
# 하위 전체 압축
for f in glob.glob('dir/**', recursive=True):
z.write(f)