# 파일 객체에 쓰기
names = 'mike\n', 'sally\n', 'cony\n'
f = open('names.txt', 'w')
f.writelines(names)
f.close()
결과)
# 현재 폴더에 names.txt가 있을때 읽어오기
f = open('names.txt')
c = f.readlines()
print(c)
f.close()
결과)
['mike\n', 'sally\n', 'cony\n']
# 열거형에서 데이터를 읽어낼 때 쓰는 방식
f = open('names.txt')
for name in f:
if '\n' in name: name = name[:-1] # 출력할 때 하나씩 더 개행되어 보이므로 '\n'을 삭제했다.
print(name)
f.close()
결과)
mike
sally
cony
# 파일에서 원하는 위치로 포인터를 변경하기 (위치: 0)
f = open('names.txt')
f.seek(0)
print(f.readline())
f.close()
결과)
mike
# 파일에서 원하는 위치로 포인터를 변경하기 (위치: 1)
f = open('names.txt')
f.seek(1)
print(f.readline())
f.close()
결과)
ike
# 파일 처리에서 에러 확인하기
f = open('names.txt')
print(f.readline())
f.close()
f.seek(1) # 이미 닫힌 상태에서는 액세스 할 수 없다.
결과)
ValueError: I/O operation on closed file.
# 파일에 대한 처리를 마칠때 자동으로 객체를 닫아주는 방법
with open('names.txt') as f:
print(f.readline())
f.seek(1)
결과)
ValueError: I/O operation on closed file.
# 자료형을 저장하고 읽어 이용하기
import pickle
mydict = {'name':'john','gender':'male','age':'45'}
f = open('vardata.txt', 'wb')
pickle.dump(mydict, f)
f.close()
data = open('vardata.txt', 'rb')
mydata = pickle.load(data)
print(mydata)
결과)
{'name': 'john', 'age': '45', 'gender': 'male'}
# UTF-8 인코딩 읽기
f = open('Log.txt', 'r', encoding = 'utf_8')
for line in f:
if '\n' in line: line = line[:-1]
print(line)
f.close()
결과)
CreateFile Failed: LastErr ==> 2
CreateFile Failed: LastErr ==> 2
CreateFile Failed: LastErr ==> 2
# 크기가 큰 파일처리
buffersize = 5000
infile = open('bigfile.txt', 'r')
outfile = open('new.txt', 'w')
buffer = infile.read(buffersize)
while len(buffer):
outfile.write(buffer)
print('.', end = '')
buffer = infile.read(buffersize)
print('Done.')
결과)
......
Done.
댓글 영역