Python 스크립트를 작성할 때 파일 또는 디렉토리가 존재하는지 여부에 관계없이 특정 작업을 수행할 수 있습니다. 예를 들어 구성 파일에 데이터를 읽거나 쓰거나 파일이 없는 경우에만 파일을 생성할 수 있습니다.
Python에서는 파일의 존재 여부를 확인하고 파일 유형을 확인하는 다양한 방법이 있습니다.
파일의 존재 여부를 확인하는 세 가지 방법을 보여 줍니다.
파일이 있는지 확인
파일이 있는지 확인하는 가장 간단한 방법은 파일을 열어 보는 것입니다. 이 방식은 모듈을 가져올 필요가 없으며 Python 2와 3 모두에서 작동합니다. 파일을 열고 몇 가지 작업을 수행하려면 이 방법을 사용하십시오.
다음 조각에서는 단순 try-except 블록을 사용합니다. filename.txt를 열고, 파일이 존재하지 않으면 IO 오류 예외가 발생하고 "File not accessable"(파일 액세스 불가) 메시지가 인쇄됩니다.
try:
f = open("filename.txt")
# Do something with the file
except IOError:
print("File not accessible")
finally:
f.close()
Python 3을 사용하는 경우 IOError 예외 대신 FileNotFoundError를 사용할 수도 있습니다.
파일을 열 때는 키워드와 함께 를 사용하는 것이 좋습니다. 이렇게 하면 작업 중에 예외가 발생하더라도 파일 작업이 완료된 후 파일이 올바르게 닫히도록 할 수 있습니다. 또한 닫기 기능을 사용하여 파일을 닫을 필요가 없으므로 코드가 짧아집니다.
다음 코드는 이전 예와 동일합니다.
try:
with open('/etc/hosts') as f:
print(f.readlines())
# Do something with the file
except IOError:
print("File not accessible")
위의 예에서는 try-exclude 블록을 사용하여 레이싱 조건을 피하기 위해 파일을 열었습니다. 경합 조건은 둘 이상의 프로세스가 동일한 파일에 액세스하는 경우에 발생합니다.
예를 들어 파일의 존재를 확인하는 경우 다른 프로세스에서 검사와 파일 열기 사이의 시간 내에 파일을 생성, 삭제 또는 차단할 수 있습니다. 이로 인해 코드가 끊어질 수 있습니다.
os.path 모듈을 사용하여 파일이 존재하는지 확인
os.path 모듈은 경로 이름 작업에 유용한 몇 가지 기능을 제공합니다. 이 모듈은 Python 2와 3 모두에서 사용할 수 있습니다.
맥락에서 가장 중요한 기능은 다음과 같습니다.
os.path.existes(경로) - 경로가 파일, 디렉터리 또는 유효한 심볼 링크인 경우 true를 반환합니다.
os.path.isfile(경로) - 경로가 일반 파일이거나 파일에 대한 심볼 링크인 경우 true를 반환합니다.
os.path.isdir(path) - 경로가 디렉토리이거나 디렉토리에 대한 심볼 링크인 경우 true를 반환합니다.
다음은 문에서 filename.txt 존재 여부를 확인하는 경우입니다.
import os.path
if os.path.isfile('filename.txt'):
print ("File exist")
else:
print ("File not exist")
파일에 대한 작업을 수행하기 전에 파일의 존재 여부를 확인해야 하는 경우 이 방법을 사용하십시오. 예를 들어 파일을 복사하거나 삭제합니다.
파일을 열고 수정하려면 이전 방법을 사용하는 것이 좋습니다.
pathlib 모듈을 사용하여 파일이 있는지 확인
pathlib 모듈은 Python 3.4 이상에서 사용할 수 있습니다. 이 모듈은 다양한 운영 체제의 파일 시스템 경로 작업을 위한 객체 지향 인터페이스를 제공합니다.
이전 예제와 마찬가지로 다음 코드는 filename.txt 존재 여부를 확인합니다.
from pathlib import Path
if Path('filename.txt').is_file():
print ("File exist")
else:
print ("File not exist")
경로가 일반 파일이거나 파일에 대한 심볼 링크인 경우 is_file은 true를 반환합니다. 디렉토리 존재 여부를 확인하려면 is_dir 메서드를 사용합니다.
pathlib와 os.path의 주요 차이점은 pathlib를 사용하면 일반 str 개체가 아닌 관련 메서드와 특성을 가진 경로 개체로 작업할 수 있다는 점입니다.
Python 2에서 이 모듈을 사용하려면 pip을 사용하여 설치할 수 있습니다.
pip install pathlib2
'SW > Python' 카테고리의 다른 글
Python : 문자열을 정수로 변환하는 방법, 예제, 명령어 (0) | 2022.03.16 |
---|---|
Python : 파이썬 버전 확인 방법, 예제, 명령어 (0) | 2021.12.10 |
Python : APScheduler : missed job : 에러, 원인, 해결법 (0) | 2020.02.13 |
Python : Keras : RNN : 대사 주고 받는 인공지능 : 예제, 사용법, 활용법 (0) | 2020.02.11 |
Python : Keras : Lstm : 오존 예측 : 예제, 사용법, 활용법 (0) | 2020.02.10 |