>백엔드 개발 >파이썬 튜토리얼 >Python 고급 파일 및 스트림

Python 고급 파일 및 스트림

巴扎黑
巴扎黑원래의
2017-06-23 15:10:421426검색

요약: 파일 및 스트림에 대한 Python의 작업은 기본적으로 다른 프로그래밍 언어와 동일하며 명령문은 다른 언어보다 훨씬 더 간결합니다. 이 두 개체 외에도 파일 및 스트림 함수는 파일과 유사한 개체, 즉 읽기만 지원하고 쓰기는 지원하지 않는 Python의 스트림 함수를 대상으로 합니다. 이 기사에서는 Python의 일반적인 파일 및 스트림 작업 기능과 작업 방법을 소개합니다.

Python의 가장 기본적인 스트림 함수: open

open(name[, mode[, buffering]]): 여기서 name은 파일의 경로입니다.

Python에서 일반적으로 사용되는 파일 모드:

  • r : 읽기 전용 모드

  • w: 덮어쓰기 모드

  • a: 확장 모드

  • b: 바이너리 모드(보통 다른 모드와 함께 사용)

  • +: 추가 모드(보통 다른 모드와 함께 사용) 모드)

그 중 오픈 기능 모드의 기본값은 읽기 전용 모드입니다. 버퍼링 기능은 파일에 대해 메모리 가속을 수행할지 여부를 나타내는 True 또는 False일 수 있습니다.

Python의 가장 기본적인 읽기 및 쓰기 기능: 읽기 및 쓰기 및 관련 내용

  • read([size]): 현재 위치에서 파일 내용을 계속 읽습니다. 크기 매개변수는 선택 사항이며 읽을 바이트를 지정합니다. 숫자. 기본값은 파일의 모든 내용을 읽는 것입니다.

  • readline([size]): 텍스트의 다음 줄을 읽습니다. 크기는 읽고 변경된 문자 수를 나타냅니다. Python에서는 readline을 사용하여 전체 내용 줄을 한 번에 읽을 수 있고, readline을 사용하여 전체 내용 줄을 한 번에 읽을 수 있습니다.

  • write(string): 파일에 특수 문자를 씁니다

참고: wirte 메소드는 원본 파일을 지운 다음 기존 스크립트의 데이터를 씁니다. 그러나 동일한 스크립트에서 write를 계속 호출하면 이전 문에서 작성한 내용을 덮어쓰지 않고 이전 쓰기 위치 뒤에 새 내용을 추가합니다.

Linux 시스템에서는 "$cat Infile | py_script

출처: Baidu Netdisk Search

"//其中somefile.txt含有文本
$ cat somefile.txt | python somescript.py

# somescript.pyimport sys
text = sys.stdin.read()
words = text.split()
wordcount = len(words)print 'Wordcount:', wordcount

Python의 세 가지 표준 스트림 형식: sys.stdin, sys.stdout 및 sys.stderr을 사용할 수 있습니다.

특정 경우 위치 읽기 및 쓰기: 찾기 및 말하기 기능:

Python에서는 현재 파일에서 다음 읽기 문자의 위치를 ​​얻기 위해 찾기 기능과 말하기 기능을 사용할 수 있습니다. 샘플 코드는 다음과 같습니다.

f = open(r'text\somefile.txt', 'w')
f.write('01234567890123456789')
f.seek(5)
f.write('Hello, World!')
f.close()
f = open(r'text\somefile.txt')print f.read()
结果:01234Hello, World!89>>> f = open(r'text/somefile.txt')>>> f.read(3)'012'>>> f.tell()3L

파일 닫기 및 캐시 지우기

close() 메서드에 대해 파일을 읽기 전용으로 사용할 경우 close() 메서드를 호출하는 것이 좋습니다. 파일을 쓰기 위해 사용할 경우 close() 메서드를 호출해야 합니다. Completed 예외로 인해 파일이 정상적으로 닫히지 않는 것을 방지하기 위해 finally 문에서 close 메소드를 호출하는 것도 가능합니다. 또한 with 문에 스트림 연산을 배치하는 것도 가능합니다. 파일 닫기 문제를 고려할 필요가 없습니다. 예:

l = ["it is a gooday!",     "Hello, world!",     "Thanks"]with open(r'text/RWLines.txt', 'w') as f:for eachStr in l:
        f.write(eachStr + "\n")"""
This is wrong because file is already closed after with clause:
f.read(2)
"""

또한 플러시 메서드를 호출하면 스트림의 현재 I./O 캐시 정보가 지워집니다. 캐시 처리와 관련하여 다음 두 가지 일반적인 사항을 참조할 수 있습니다. 방법:

while True:char = f.read(1)if not char: break
    process(char)
f.close()while True:
    line = f.readline()if not line: break
        process(line)
f.close()

위 내용은 Python 고급 파일 및 스트림의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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