티스토리 뷰

Python

파일 다루기 기초 지식

techbard 2015. 7. 9. 16:16
  • 파일 다루기

# 파일 객체에 쓰기

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.



댓글
댓글쓰기 폼
공지사항
Total
410,768
Today
37
Yesterday
44
«   2019/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
글 보관함