이 튜토리얼에서는 Python에서 다양한 파일 작업을 다룰 것입니다. 파일 읽기, 파일 쓰기, 파일 삭제 및 기타 작업에 대한 Python의 사용법을 살펴보겠습니다. 딜레이 없이 시작하겠습니다.
Python에서 파일 작업
이전 튜토리얼에서는 콘솔을 사용하여 입력을 받았습니다. 이제 파일을 사용하여 입력을 받겠습니다. 즉, 파일에서 읽고 파일에 쓰겠습니다. 이를 위해 몇 가지 단계를 유지해야 합니다. 그것들은 다음과 같습니다
- 파일 열기
- 해당 파일에서 입력 받기 / 해당 파일에 출력 쓰기
- 파일 닫기
또한 파일 복사 및 파일 삭제와 같은 유용한 작업도 배우게 될 것입니다.
Python에서 파일 작업이 필요한 이유는?
머신 러닝 문제에서 대규모 데이터 집합을 다룰 때 파일을 사용하는 것은 기본적인 필요성입니다. Python이 데이터 과학에서 주로 사용되는 언어이므로 Python이 제공하는 다양한 파일 작업에 능숙해져야 합니다.
So, let’s explore some of the Python file operations here.
1. 파일을 열려면 Python의 open() 함수를 사용합니다.
Python에서 파일을 다루는 첫 번째 단계는 파일을 열어보는 방법을 배우는 것입니다. open()
메서드를 사용하여 파일을 열 수 있습니다.
Python의 open() 함수는 두 개의 인수를 받습니다. 첫 번째는 파일 이름과 완전한 경로이며, 두 번째는 파일 열기 모드입니다.
아래에 파일의 일반적인 읽기 모드 중 일부를 나열했습니다:
- ‘r’ : 이 모드는 파일이 읽기 전용으로 열린다는 것을 나타냅니다.
- ‘w’ : 이 모드는 파일이 쓰기 전용으로 열린다는 것을 나타냅니다. 파일이 해당 이름을 가진 것이 없으면 새로 생성됩니다.
- ‘a’ : 이 모드는 프로그램의 출력이 해당 파일의 이전 출력에 추가될 것임을 나타냅니다.
- ‘r+’ : 이 모드는 파일이 읽기 및 쓰기 모드로 열린다는 것을 나타냅니다.
또한 Windows 운영 체제의 경우 파일을 이진으로 액세스하기 위해 ‘b’를 추가할 수 있습니다. 이는 Windows가 이진 텍스트 파일과 일반 텍스트 파일을 구분하기 때문입니다.
가정해보면 코드가 위치한 디렉토리에 ‘file.txt’라는 텍스트 파일이 있다고 가정해봅시다. 이제 그 파일을 열고 싶습니다.
그러나 open(filename, mode) 함수는 파일 객체를 반환합니다. 해당 파일 객체를 사용하여 추가 작업을 진행할 수 있습니다.
#directory: /home/imtiaz/code.py
text_file = open('file.txt','r')
#전체 위치를 사용한 다른 방법
text_file2 = open('/home/imtiaz/file.txt','r')
print('First Method')
print(text_file)
print('Second Method')
print(text_file2)
다음 코드의 출력은 다음과 같습니다.
================== RESTART: /home/imtiaz/code.py ==================
First Method
Second Method
>>>
2. Python에서 파일 읽고 쓰기
Python은 각 함수가 다르게 동작하는 파일 읽기 및 쓰기를 위한 다양한 방법을 제공합니다. 중요한 점은 파일 작업 모드입니다. 파일을 읽으려면 파일을 읽기 또는 쓰기 모드로 열어야 합니다. Python에서 파일에 쓰려면 파일을 쓰기 모드로 열어야 합니다.
Python에서 파일을 읽고 쓸 수 있는 몇 가지 함수는 다음과 같습니다.
- read() : 이 함수는 전체 파일을 읽고 문자열을 반환합니다.
- readline() : 이 함수는 파일에서 줄을 읽어 문자열로 반환합니다. 이 함수를 nth 번 호출하면 n번째 줄을 가져옵니다.
- readlines() : 이 함수는 파일의 각 줄이 담긴 리스트를 반환합니다.
- readlines() : 이 함수는 파일의 각 줄이 담긴 리스트를 반환합니다.
- write() : 이 함수는 파일에 고정된 문자 시퀀스를 작성합니다.
- writelines() : 이 함수는 문자열 목록을 작성합니다.
- append() : 이 함수는 파일에 문자열을 덧붙이며 파일을 덮어쓰지 않습니다.
예를 들어 파일 “abc.txt”에서 for 루프를 사용하여 파일의 각 줄을 읽어보겠습니다:
# 파일 열기
text_file = open('/Users/pankaj/abc.txt','r')
# 줄 목록 가져오기
line_list = text_file.readlines();
# 목록에서 각 줄에 대해 줄 인쇄
for line in line_list:
print(line)
text_file.close() # 파일 닫기를 잊지 마세요
결과:
이제 Python에서 파일을 읽는 방법을 알았으니, 여기서 writelines() 함수를 사용하여 쓰기 작업을 수행해 봅시다.
# 파일 열기
text_file = open('/Users/pankaj/file.txt','w')
# 빈 목록 초기화
word_list= []
# 4번 반복
for i in range (1, 5):
print("Please enter data: ")
line = input() # 입력 받기
word_list.append(line) # 목록에 추가
text_file.writelines(word_list) # 파일에 4개의 단어 작성
text_file.close() # 파일 닫기를 잊지 마세요
결과
3. shutil() 방법을 사용하여 Python에서 파일 복사하기
파일을 복사하려면 shutil 모듈을 사용할 수 있습니다. 이 유틸리티를 사용하면 Python에서 다른 파일에 대한 복사 및 이동 작업을 수행할 수 있습니다. 예를 들어 보겠습니다:
import shutil
shutil.copy2('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copy2.txt')
#파일 복사하는 또 다른 방법
shutil.copyfile('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copyfile.txt')
print("File Copy Done")
4. shutil.os.remove() 방법을 사용하여 Python에서 파일 삭제하기
Python의 shutil 모듈은 파일 시스템에서 파일을 삭제하기 위한 remove() 메서드를 제공합니다. Python에서 삭제 작업을 수행하는 방법을 살펴보겠습니다.
import shutil
import os
#파일 삭제하는 두 가지 방법
shutil.os.remove('/Users/pankaj/abc_copy2.txt')
os.remove('/Users/pankaj/abc_copy2.txt')
5. close() 메서드를 사용하여 Python에서 열린 파일 닫기
파일을 열 때 변경 사항을 만든 후 파일을 닫는 것이 매우 중요합니다. 이렇게하면 이전에 한 변경 사항을 저장하고 파일을 메모리에서 제거하며 프로그램 내에서 더 이상 읽거나 쓰지 않도록합니다.
Python에서 열린 파일을 닫는 구문:
fileobject.close()
파일을 읽은 이전 예제를 계속하려면 파일을 닫는 방법은 다음과 같습니다.
text_file = open('/Users/pankaj/abc.txt','r')
# 여기에 일부 파일 작업이 있습니다
text_file.close()
또한, with 블록을 사용하면 파일을 수동으로 닫을 필요가 없습니다. with 블록이 실행되면 파일이 닫히고 더 이상 읽거나 쓸 수 없게됩니다.
6. Python FileNotFoundError
Python에서 파일을 처리할 때 FileNotFoundError를 받는 것이 일반적입니다. 파일 개체를 만들 때 완전한 파일 경로를 제공하여 쉽게 방지할 수 있습니다.
File "/Users/pankaj/Desktop/string1.py", line 2, in <module>
text_file = open('/Users/pankaj/Desktop/abc.txt','r')
FileNotFoundError: [Errno 2] No such file or directory: '/Users/pankaj/Desktop/abc.txt'
FileNotFoundError를 해결하려면 파일 오픈 메소드에 지정한 경로가 올바른지 확인하기만 하면됩니다.
결론
이것은 Python에서의 파일 작업입니다. Python 내에서 파일을 사용하는 다른 방법들도 많이 있으며, 이에는 CSV 데이터를 읽는 등의 방법도 포함됩니다. 이 문서에서는 Pandas 모듈을 사용하여 Python에서 CSV 데이터셋을 읽는 방법에 대해 설명합니다.
I hope you enjoyed reading the article! Happy learning 🙂
**참고 자료:
**https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files
Source:
https://www.digitalocean.com/community/tutorials/python-read-file-open-write-delete-copy