산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 파일 I/O

파이썬 파일 I/O

이 자습서에서는 Python 파일 작업에 대해 알아봅니다. 보다 구체적으로, 파일 열기, 파일 읽기, 쓰기, 닫기 및 알고 있어야 하는 다양한 파일 방법입니다.

동영상:Python에서 파일 읽기 및 쓰기

파일

파일은 관련 정보를 저장하기 위해 디스크의 이름이 지정된 위치입니다. 비휘발성 메모리(예:하드 디스크)에 데이터를 영구적으로 저장하는 데 사용됩니다.

RAM(Random Access Memory)은 휘발성이므로(컴퓨터가 꺼지면 데이터가 손실됨) 파일을 영구적으로 저장하여 나중에 사용할 수 있도록 파일을 사용합니다.

파일을 읽거나 쓰려면 먼저 파일을 열어야 합니다. 완료되면 파일과 연결된 리소스가 해제되도록 파일을 닫아야 합니다.

따라서 Python에서 파일 작업은 다음과 같은 순서로 발생합니다.

  1. 파일 열기
  2. 읽기 또는 쓰기(작업 수행)
  3. 파일 닫기
<시간>

Python에서 파일 열기

파이썬에는 내장된 open()이 있습니다. 파일을 여는 기능. 이 함수는 파일을 적절하게 읽거나 수정하는 데 사용되므로 핸들이라고도 하는 파일 개체를 반환합니다.

>>> f = open("test.txt")    # open file in current directory
>>> f = open("C:/Python38/README.txt")  # specifying full path

파일을 여는 동안 모드를 지정할 수 있습니다. 모드에서 r를 읽을지 여부를 지정합니다. , w 작성 또는 a 추가 파일에. 파일을 텍스트 모드로 열지 바이너리 모드로 열지 지정할 수도 있습니다.

기본값은 텍스트 모드에서 읽는 것입니다. 이 모드에서는 파일을 읽을 때 문자열을 얻습니다.

반면 바이너리 모드는 바이트를 반환하며 이미지나 실행 파일과 같은 텍스트가 아닌 파일을 다룰 때 사용하는 모드입니다.

모드 설명
r 읽기 위해 파일을 엽니다. (기본값)
w 쓰기를 위해 파일을 엽니다. 존재하지 않는 경우 새 파일을 생성하고 존재하는 경우 파일을 자릅니다.
x 독점 생성을 위해 파일을 엽니다. 파일이 이미 있으면 작업이 실패합니다.
a 파일을 자르지 않고 파일 끝에 추가할 파일을 엽니다. 존재하지 않는 경우 새 파일을 만듭니다.
t 텍스트 모드에서 열립니다. (기본값)
b 바이너리 모드로 열립니다.
+ 업데이트를 위해 파일을 엽니다(읽기 및 쓰기)
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode

다른 언어와 달리 a 문자는 ASCII를 사용하여 인코딩될 때까지 숫자 97을 의미하지 않습니다. (또는 기타 동등한 인코딩).

또한 기본 인코딩은 플랫폼에 따라 다릅니다. Windows에서는 cp1252입니다. 하지만 utf-8 리눅스에서.

따라서 기본 인코딩에 의존해서는 안 됩니다. 그렇지 않으면 코드가 다른 플랫폼에서 다르게 작동합니다.

따라서 텍스트 모드에서 파일 작업을 할 때는 인코딩 유형을 지정하는 것이 좋습니다.

f = open("test.txt", mode='r', encoding='utf-8')
<시간>

Python에서 파일 닫기

파일에 대한 작업을 마치면 파일을 제대로 닫아야 합니다.

파일을 닫으면 파일과 연결된 리소스가 해제됩니다. close()을 사용하여 수행됩니다. Python에서 사용할 수 있는 메서드입니다.

파이썬에는 참조되지 않은 객체를 정리하는 가비지 수집기가 있지만 파일을 닫기 위해 의존해서는 안 됩니다.

f = open("test.txt", encoding = 'utf-8')
# perform file operations
f.close()

이 방법은 완전히 안전하지 않습니다. 파일로 일부 작업을 수행할 때 예외가 발생하면 파일을 닫지 않고 코드가 종료됩니다.

더 안전한 방법은 try...finally 블록을 사용하는 것입니다.

try:
   f = open("test.txt", encoding = 'utf-8')
   # perform file operations
finally:
   f.close()

이렇게 하면 프로그램 흐름을 멈추게 하는 예외가 발생하더라도 파일이 제대로 닫히도록 보장합니다.

파일을 닫는 가장 좋은 방법은 with을 사용하는 것입니다. 성명. 이렇게 하면 with 내부의 블록이 닫힐 때 파일이 닫힙니다. 문이 종료되었습니다.

명시적으로 close()를 호출할 필요가 없습니다. 방법. 내부적으로 이루어집니다.

with open("test.txt", encoding = 'utf-8') as f:
   # perform file operations
<시간>

Python에서 파일에 쓰기

Python에서 파일에 쓰려면 w 쓰기로 열어야 합니다. , a 추가 또는 독점 생성 x 모드.

w에 주의해야 합니다. 파일이 이미 존재하는 경우 파일을 덮어쓰므로 모드입니다. 이로 인해 이전 데이터가 모두 지워집니다.

문자열 또는 바이트 시퀀스(바이너리 파일의 경우) 쓰기는 write()를 사용하여 수행됩니다. 방법. 이 메서드는 파일에 기록된 문자 수를 반환합니다.

with open("test.txt",'w',encoding = 'utf-8') as f:
   f.write("my first file\n")
   f.write("This file\n\n")
   f.write("contains three lines\n")

이 프로그램은 test.txt이라는 새 파일을 생성합니다. 존재하지 않는 경우 현재 디렉토리에 있습니다. 존재하는 경우 덮어씁니다.

다른 줄을 구분하려면 줄 바꿈 문자를 직접 포함해야 합니다.

<시간>

파이썬에서 파일 읽기

Python에서 파일을 읽으려면 r을 읽고 파일을 열어야 합니다. 모드.

이를 위해 다양한 방법을 사용할 수 있습니다. read(size)을 사용할 수 있습니다. 크기로 읽는 방법 데이터 수. 크기인 경우 매개변수를 지정하지 않으면 파일 끝까지 읽고 반환합니다.

text.txt를 읽을 수 있습니다. 위 섹션에서 다음과 같이 작성한 파일:

>>> f = open("test.txt",'r',encoding = 'utf-8')
>>> f.read(4)    # read the first 4 data
'This'

>>> f.read(4)    # read the next 4 data
' is '

>>> f.read()     # read in the rest till end of file
'my first file\nThis file\ncontains three lines\n'

>>> f.read()  # further reading returns empty sting
''

read() 메서드는 줄 바꿈을 '\n'으로 반환합니다. . 파일 끝에 도달하면 더 읽을 때 빈 문자열이 표시됩니다.

seek()을 사용하여 현재 파일 커서(위치)를 변경할 수 있습니다. 방법. 마찬가지로 tell() 메서드는 현재 위치(바이트 수)를 반환합니다.

>>> f.tell()    # get the current file position
56

>>> f.seek(0)   # bring file cursor to initial position
0

>>> print(f.read())  # read the entire file
This is my first file
This file
contains three lines

for 루프를 사용하여 파일을 한 줄씩 읽을 수 있습니다. 이는 효율적이고 빠릅니다.

>>> for line in f:
...     print(line, end = '')
...
This is my first file
This file
contains three lines

이 프로그램에서 파일 자체의 줄에는 줄 바꿈 문자 \n가 포함됩니다. . 따라서 print()의 end 매개변수를 사용합니다. 인쇄할 때 두 줄 바꿈을 방지하는 기능입니다.

또는 readline()를 사용할 수 있습니다. 파일의 개별 라인을 읽는 방법. 이 메서드는 줄 바꿈 문자를 포함하여 줄 바꿈될 때까지 파일을 읽습니다.

>>> f.readline()
'This is my first file\n'

>>> f.readline()
'This file\n'

>>> f.readline()
'contains three lines\n'

>>> f.readline()
''

마지막으로 readlines() 메서드는 전체 파일의 나머지 줄 목록을 반환합니다. 이러한 모든 읽기 방법은 EOF(파일 끝)에 도달하면 빈 값을 반환합니다.

>>> f.readlines()
['This is my first file\n', 'This file\n', 'contains three lines\n']
<시간>

파이썬 파일 메서드

파일 개체와 함께 사용할 수 있는 다양한 방법이 있습니다. 그 중 일부는 위의 예에서 사용되었습니다.

다음은 간단한 설명과 함께 텍스트 모드의 전체 메서드 목록입니다.

메소드 설명
닫기() 열린 파일을 닫습니다. 파일이 이미 닫힌 경우에는 효과가 없습니다.
분리() 기본 바이너리 버퍼를 TextIOBase와 분리합니다. 반환합니다.
파일 번호() 파일의 정수(파일 설명자)를 반환합니다.
플러시() 파일 스트림의 쓰기 버퍼를 플러시합니다.
편한() 반환 True 파일 스트림이 대화형인 경우
읽기(n ) 최대 n 읽기 파일의 문자. 음수이거나 None인 경우 파일 끝까지 읽습니다. .
가독성() 반환 True 파일 스트림을 읽을 수 있는지 여부.
readline(n =-1) 파일에서 한 줄을 읽고 반환합니다. 최대 n 읽기 지정된 경우 바이트.
readlines(n =-1) 파일에서 줄 목록을 읽고 반환합니다. 최대 n 읽기 지정된 경우 바이트/문자.
seek(오프셋 ,에서 =SEEK_SET ) 파일 위치를 오프셋으로 변경 바이트, from 참조 (시작, 현재, 끝).
찾을 수 있는() 반환 True 파일 스트림이 임의 액세스를 지원하는지 여부.
말() 현재 파일 위치를 반환합니다.
자르기(크기 =None ) 파일 스트림의 크기를 크기로 조정합니다. 바이트. 크기인 경우 지정되지 않은 경우 현재 위치로 크기가 조정됩니다.
쓰기 가능() 반환 True 파일 스트림을 쓸 수 있는지 여부.
쓰기(s ) 문자열 s를 씁니다. 파일에 기록된 문자 수를 반환합니다.
writelines( ) 목록을 씁니다. 파일에.

python

  1. C 입력 출력(I/O)
  2. 파이썬 데이터 유형
  3. 파이썬 연산자
  4. 파이썬 사전
  5. 파이썬 파일 I/O
  6. Python 파일 존재 여부 확인 | 파이썬에서 디렉토리가 존재하는지 확인하는 방법
  7. Python JSON:인코딩(덤프), 디코딩(로드) 및 JSON 파일 읽기
  8. C - 파일 I/O
  9. C# - 파일 I/O
  10. 파이썬 - 파일 I/O