>  기사  >  백엔드 개발  >  파일 및 파일 객체를 읽고 쓰는 Python 메서드

파일 및 파일 객체를 읽고 쓰는 Python 메서드

高洛峰
高洛峰원래의
2017-02-23 11:20:261083검색

1.open

open을 사용하여 파일을 연 후에는 파일 개체의 close() 메서드를 호출하는 것을 기억해야 합니다. 예를 들어, try/finally 문을 사용하여 파일이 최종적으로 닫힐 수 있는지 확인할 수 있습니다.

file_object = open('thefile.txt')
시도:
all_the_text = file_object.read( )
마지막으로:
file_object.close( )
참고: 가능 파일을 열 때 예외가 발생하면 파일 개체 file_object가 close() 메서드를 실행할 수 없기 때문에 open 문을 try 블록에 넣지 마십시오.

2. 파일 읽기

텍스트 파일 읽기
input = open('data', 'r')
#두 번째 매개변수의 기본값은 r
input = open입니다. ('data')

바이너리 파일 읽기
input = open('data', 'rb')

모든 내용 읽기
file_object = open( 'thefile .txt')
시도:
all_the_text = file_object.read( )
마지막으로:
file_object.close( )

고정 바이트 읽기
file_object = 열기('abinfile ', 'rb')
시도:
True인 동안:
Chunk = file_object.read(100)
청크가 아닌 경우:
break
do_something_with(chunk)
마침내 :
file_object.close( )

각 줄 읽기
list_of_all_the_lines = file_object.readlines( )
파일이 텍스트 파일인 경우 파일 객체를 직접 순회하여 각 줄을 가져올 수도 있습니다. line:

for line in file_object:
process line

3. 파일 쓰기

텍스트 파일 쓰기
output = open('data' , 'w')

바이너리 파일 쓰기
output = open('data', 'wb')

쓰기 파일 추가
output = open('data', ' w+' )

데이터 쓰기
file_object = open('thefile.txt', 'w')
file_object.write(all_the_text)
file_object.close( )

Write 여러 줄 입력

file_object.writelines(list_of_text_strings)

Writeline을 호출하여 여러 줄을 쓰는 것이 write를 사용하여 한 번에 쓰는 것보다 성능이 더 높다는 점에 유의하세요.

로그 파일을 처리할 때 다음과 같은 상황이 자주 발생합니다. 로그 파일이 너무 커서 한 번에 처리하기 위해 전체 파일을 메모리로 읽어들이는 것이 불가능합니다. 물리적 메모리가 2GB인 컴퓨터에서 2GB의 로그 파일을 처리하는 경우 한 번에 200MB의 콘텐츠만 처리해야 할 수도 있습니다.

Python에서는 내장 File 객체가 이러한 작업을 수행하기 위해 readlines(sizehint) 함수를 직접 제공합니다. 다음 코드를 예로 들어 보겠습니다.

file = open('test.log', 'r')sizehint = 209715200 # 200Mposition = 0lines = file.readlines(sizehint)while not file.tell() - position < 0: Position = file.tell() 행 = file.readlines(sizehint)

readlines(sizehint) 함수가 호출될 때마다 약 200MB의 데이터가 반환되며 반환되는 데이터는 다음과 같습니다. 대부분의 경우 반환된 데이터의 바이트 수는 sizehint에 지정된 값보다 약간 큽니다(readlines(sizehint) 함수가 마지막으로 호출되는 경우 제외). 일반적으로 Python은 사용자가 지정한 sizehint 값을 내부 캐시 크기의 정수배로 자동 조정합니다.

file은 Python의 특수한 유형으로, Python 프로그램에서 외부 파일을 조작하는 데 사용됩니다. Python의 모든 것은 객체이며 파일도 예외는 아닙니다. 파일에는 파일 메서드와 속성이 있습니다. 먼저 파일 객체를 생성하는 방법을 살펴보겠습니다.

•file(name[, mode[, buffering]])

file() 함수는 파일 객체를 생성하는 데 사용됩니다. 더 설명적일 수 있는 open()이라는 별칭이 있으며 내장 함수입니다. 매개변수를 살펴보겠습니다. 해당 매개변수는 모두 문자열 형식으로 전달됩니다. 이름은 파일의 이름입니다.

mode는 개방형 모드이며, 선택값은 r w a U이며, 이는 각각 읽기(기본값)와 쓰기를 나타내며 다양한 줄 바꿈을 지원하는 모드를 추가합니다. w 모드나 a 모드로 파일을 열었을 때 해당 파일이 없으면 자동으로 생성됩니다. 또한 기존 파일을 열기 위해 w 모드를 사용하면 원본 파일의 내용이 지워지는데, 이때 초기 파일 작업 표시가 파일의 시작 부분에 있기 때문입니다. 이때 쓰기 작업을 수행하면 원본 내용이 지워집니다. 반드시 삭제됩니다. 역사적인 이유로 인해 개행 문자는 시스템마다 다른 모드를 갖습니다. 예를 들어 Unix에서는 n이고 Windows에서는 'rn'입니다. r' 'n' 'rn'은 모두 개행 문자를 나타낼 수 있으며, 이 파일에 사용된 개행 문자를 저장하는 데 사용되는 튜플이 있습니다. 그러나 줄 바꿈에 대한 모드는 많지만 Python에서 읽을 때는 대신 n이 사용됩니다. 모드 문자 뒤에 두 개의 기호 + b t를 추가할 수도 있습니다. 이는 각각 파일을 동시에 읽고 쓸 수 있으며 파일을 바이너리 모드 또는 텍스트 모드(기본값)로 열 수 있음을 나타냅니다.

버퍼링이 0이면 버퍼링이 없음을 의미하고, 1이면 "라인 버퍼링"을 의미하며, 1보다 큰 숫자이면 버퍼 크기(바이트)를 의미합니다.

파일 개체에는 고유한 속성과 메서드가 있습니다. 먼저 파일의 속성을 살펴보겠습니다.

•closed #파일이 닫혔는지 표시하고 close()로 다시 작성했습니다.
•encoding #파일 인코딩
•mode #Open 모드
•name #파일 이름
• newlines # 파일에 사용되는 뉴라인 모드는 튜플입니다
•softspace #boolean 유형, 일반적으로 0. 인쇄

파일을 읽고 쓰는 데 사용된다고 합니다:

• F.read ([size]) #size는 읽기 길이(바이트)입니다.

•F.readline([size])

#size가 정의된 경우 한 줄을 읽습니다. 단지 한 줄의 일부인 경우 반환될 수 있습니다.

•F.readlines([size])

# 파일의 각 줄을 목록의 구성원으로 취급하고 이 목록을 반환합니다. 실제로 루프에서 readline()을 호출하여 내부적으로 구현됩니다. size 매개변수가 제공되면 size는 읽은 내용의 전체 길이를 나타내며, 이는 파일의 일부만 읽을 수 있음을 의미합니다.

•F.write(str)

#Write str을 파일에 입력하면 write()는 str

•writelines(seq) 뒤에 개행 문자를 추가하지 않습니다.

#seq의 모든 내용을 파일에 씁니다. 이 함수는 또한 각 줄 뒤에 아무것도 추가하지 않고 충실하게 작성합니다.

파일의 다른 방법:

•F.close()

#파일을 닫습니다. Python은 더 이상 사용되지 않는 파일을 자동으로 닫습니다. 그러나 이 기능은 보장되지 않습니다. 직접 닫는 습관을 기르는 것이 가장 좋습니다. 파일을 닫은 후 조작하면 ValueError가 발생합니다

•F.flush()

#버퍼의 내용을 하드디스크에 쓰기

•F.fileno()

#긴 정수 "파일 레이블"을 반환합니다

•F.isatty()

#파일이 터미널 장치 파일인지 여부( 유닉스 시스템에서는 )

•F.tell()

#파일의 시작 부분을 원점으로 하여 파일 작업 표시의 현재 위치를 반환합니다

•F .next()

# 다음 줄로 돌아가서 파일 연산 플래그를 다음 줄로 옮깁니다. for ... in file과 같은 문에서 파일이 사용되면 순회를 구현하기 위해 next() 함수가 호출됩니다.

•F.seek(offset[,whence])

#파일 작업 표시를 오프셋 위치로 이동합니다. 이 오프셋은 일반적으로 파일 시작 부분을 기준으로 계산되며 일반적으로 양수입니다. 그러나 wherece 매개변수가 제공되는 경우, 처음부터 계산을 시작하려면 0이 될 수 있고, 현재 위치를 원점으로 사용하려면 1이 될 수 있습니다. 2는 파일의 끝이 계산의 원본으로 사용됨을 나타냅니다. 파일을 a 또는 a+ 모드로 열면 쓰기 작업을 수행할 때마다 파일 작업 표시가 자동으로 파일 끝으로 돌아갑니다.

•F.truncate([size])

#파일을 지정된 크기로 자릅니다. 기본값은 현재 파일 작업 표시 위치까지 자릅니다. 크기가 파일 크기보다 큰 경우 시스템에 따라 파일이 변경되지 않거나 해당 크기에 0으로 파일이 채워지거나 임의의 내용이 추가될 수 있습니다.

위의 Python에서 파일과 파일 객체를 읽고 쓰는 방법(권장)은 모두 편집자가 공유한 내용이므로 참고가 되셨으면 좋겠습니다. PHP 중국어 홈페이지도 지원해 주시길 바랍니다. .

Python의 파일 및 파일 객체 읽기 및 쓰기 방법과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.