2014. 5. 23. 15:51

이 문서는 파이썬 2점대를 기준으로 작성되었습니다.

9 파일

[파일쓰기]

f = file('t.txt', 'w') # f = open('t.txt', 'w')

f.write(s) #문자열 파일에 기록

f.close()

 

[파일읽기]

f = file('t.txt') # f = open('t.txt')

s = f.read()

 

[라인단위로 파일읽기]

line = f.readline() # 번에 줄씩 읽는다.

list = f.readlines() #파일 전체를 라인 단위로 끊어서 리스트에 저장

f.readlines() #readlines 유사하지만 파일 전체를 한꺼번에 읽기 않고,

필요할 때문 읽어서 공급

 

[라인단위로 파일 쓰기]

f.writelines(lines) #리스트 안에 잇는 문자열을 연속해서 출력(list '\n'있는경우)

f.write(''.join(lines))

f.write('\n'.join(lines))(list '\n' 없는경우)

 

[파일에서 원하는 만큼의 문자읽기]

f.read(10) #f.read(num)

 

[파일 처리 모드]

파일 처리 모드

설명

r

읽기 전용

w

쓰기 전용

a

파일 끝에 추가(쓰기 전용)

r+

읽고 쓰기

w+

읽고 쓰기(기존 파일 삭제)

a+

파일 끝에 추가(읽기도 가능)

rb

이진 파일 읽기 전용

wb

이진 파일 쓰기 전용

ab

이진 파일 파일 끝에 추가(쓰기 전용)

rb+

이진 파일 읽고 쓰기

wb+

이진 파일 읽고 쓰기(기존 파일 삭제)

ab+

이진 파일 파일 끝에 추가(읽기도 가능

f = open('f.txt', 'a') #파일 추가 모드로 오픈

 

[임의 접근 파일]

f.seek(n) #파일의 n번째 바이트로 이동

f.seek(n, 1) #현재 위치에서 n바이트 이동(n 양수면 뒤쪽으로, 음수면 앞쪽)

f.seek(n, 2) # 마지막에서 n바이트 이동(n 보통 음수)

f.tell() #현재의 파일 포인터 위치 돌려줌

 

[파일 객체 method 요약]

file.close() #파일을 닫는다. 이상 입출력 없게

file.read([size]) #원하는 바이트 수만큼 파일에서 읽어온다. 인수를 지정하지 않으면 전체 파일 read

file.readline() #라인 하나를 읽어들인다. size 지정되면 읽을 있는 최대 바이트 수가

file.readlines() #전체 라인을 readline() 이용하여 읽어들인 라인을 리스트에 넣어서 리턴

file.write(str) #문자열 str 파일에 쓴다.

file.writelines(list) #문자열 리스트를 파일에 쓴다. 줄바꾸기가 자동으로 삽입되지는 않음

file.seek(offset[,whence]) #whence 기본값은 0. (0: 시작기준, 1:현재위치, 2:끝기준)

#offset만큼 떨어진 위치에 파일 포인터 위치

file.tell() #파일의 현재 위치를 리턴

file.flush() #버퍼가 채워지지 않았어도 내부 버퍼의 내용을 파일에 보낸다.

file.fileno() #file객체의 파일 기술자(File Descriptor)(정수) 리턴

file.isatty() #만일 file객체가 tty 같은 장치이면 1 아니면 0 리턴

file.truncate([size]) #파일 크기를 지정된 크기로 잘라 버림. 인수를 주지 않으면 현재 위치에서 자름

 

[파일 객체 속성]

file.closed #file close 되었으면 1, 아니면 0

file.mode #파일이 오픈된 모드

file.name #open() 사용된 파일 이름

file.softspace #1이면 print문을 사용할 출력 사이에 자동적으로 스페이스 출력됨.

#0이면 스페이스가 자동으로 삽입되지 않음

 

[표준 .출력 방향 전환]

import stys

sys.stdout #표준 출력

sys.stderr #표준 에러

sys.stdin #표준 입력

sys.stdout = f = StringIO.StringIO() #출력 파일 방향 전환

s = f.getvalue() #내부 문자열 가져오기

f = StringIO.StringIO(s) #문자열 객체에서 파일 객체 얻어내기

 

[지속모듈 -DBM]

#사전 자료형과 사용법 유사

#키와 값은 반드시 문자열이어야

import anydbm

f = anydbm.open('music', 'c') #'c' 파일이 없으면 생성하고 읽기로 오픈

 

[지속모듈-피클링] #임의의 파이선 객체 저장

import pickle

pickle.dump(출력할 객체, 파일 객체) #객체를 파일로 출력

object = pickle.laod(파일 객체) #객체에서 파일 읽어 들임

#문자열로 객체를 출력, 문자열에서 객체 읽어들이려면.. dumps, loads

s = pickle.dumps(출력할 객체) #출력할 객체 피클링

 

object = pickle.load(s) #언픽클링


※출처 : 프리렉 파이썬_이강성 저 

Posted by Triany