- 파일 처리에 활용하는 함수
- open: 불러올 파일을 지정하고 읽기인지 쓰기인지 정함
- read: 파일 전체 내용을 문자열로 읽어온다
- readline: 하나의 줄만 읽어옴(txt)
- readlines: 파일 전체 내용을 한 줄씩 리스트로 만들어줌(txt)
- write: 파일에 씀
- writelines: txt 파일에만 씀
open 함수를 통해 파일을 열 수 있습니다. input 되는 변수에 따라 모드를 지정할 수 있는데요, 변수는 다음과 같습니다.
- r: 읽기, 생략 시 읽기가 기본 모드
- w: 쓰기, 기존 파일이 있을 경우 덮어쓰기
- r+: 읽기, 쓰기
- a: 쓰기, 기존 파일이 있을 경우 이어서 쓰기
- t: 텍스트 파일용
- b: 바이너리 파일용
- 파일 읽기
그러면 예시를 통해 더 자세히 알아봅시다. 먼저 저는 D:\Download\Python에 data.txt라는 파일을 만들고 다음과 같이 입력하고 저장하도록 하겠습니다.
엄마가 섬그늘에
굴 따러 가면
아기가 혼자 남아
집을 보다가
그리고 다음과 같이 코드를 작성해서 실행해 봅시다.
#변수 선언
file = None
a = ""
#파일 불러오기
file = open("D:\Download\Python\data.txt","r",encoding="utf-8")
a = file.readline()
print(a)
>> 엄마가 섬그늘에
>>
먼저 변수가 선언되고 file 변수를 통해 텍스트 파일을 불러왔습니다. 읽기(r)로 불러왔고 인코딩 방식은 utf-8 방식으로 설정했습니다. 이게 무슨 말인지는 추후에 알아보도록 하겠습니다. 그리고 readline으로 한 줄을 읽어왔습니다. 그런데 print를 하니까 한 줄이 더 print가 되는데요, end를 사용해 이를 해결할 수 있습니다.
file = None
a = ""
file = open("D:\Download\Python\data.txt","r",encoding="utf-8")
a = file.readline()
print(a, end = "")
>> 엄마가 섬그늘에
위의 예시에서는 첫 번째 줄만 읽어왔는데요, 다 읽어오려면 어떻게 해야 할까요?? readline을 여러 번 하면 됩니다.
file = None
a = ""
file = open("D:\Download\Python\data.txt","r",encoding="utf-8")
a = file.readline()
print(a, end = "")
a = file.readline()
print(a, end = "")
a = file.readline()
print(a, end = "")
>> 엄마가 섬그늘에
>> 굴 따러 가면
>> 아기가 혼자 남아
그리고 open을 했다면, 코드 마지막에 close를 해줘야 합니다.
file = None
a = ""
file = open("D:\Download\Python\data.txt","r",encoding="utf-8")
a = file.readline()
print(a, end = "")
a = file.readline()
print(a, end = "")
a = file.readline()
print(a, end = "")
file.close()
다음으로는 readlines를 활용할 수 있습니다.
file = None
a = ""
file = open("D:\Download\Python\data.txt","r",encoding="utf-8")
a = file.readlines()
print(a)
file.close()
>> ['엄마가 섬그늘에\n', '굴 따러 가면\n', '아기가 혼자 남아\n', '집을 보다가']
readlines는 리스트로 저장되는 거니까 print 보기가 불편하네요, 코드를 다음과 같이 수정해 봅시다.
file = None
a = ""
file = open("D:\Download\Python\data.txt","r",encoding="utf-8")
a = file.readlines()
for i in a :
print(i, end = "")
file.close()
>> 엄마가 섬그늘에
>> 굴 따러 가면
>> 아기가 혼자 남아
>> 집을 보다가
그런데 만약 지정된 경로에 파일이 없다면 어떻게 될까요?? 그럼 다음과 같은 오류가 출력됩니다.
Traceback (most recent call last):
File "D:\Download\Python\00.py", line 4, in <module>
file = open("D:\Download\Python\data1.txt","r",encoding="utf-8")
FileNotFoundError: [Errno 2] No such file or directory: 'D:\Download\Python\data1.txt'
이러면 굉장히 불편하니까 함수를 불러와서 문제를 해결해 봅시다. 이번에는 input을 활용해서 경로를 설정해 보도록 하겠습니다.
import os
#변수 선언
file = None
fileName, List, String = "", [], ""
fileName = input("경로 설정: ")
if os.path.exists(fileName) :
file = open(fileName,"r",encoding="utf-8")
List = file.readlines()
for String in List :
print(String, end = "")
file.close()
else :
print("해당 경로가 존재하지 않습니다")
>> 경로 설정: D:\Download\Python\data1.txt
>> 해당 경로가 존재하지 않습니다
os의 path.exists 함수를 활용해서 경로가 존재할 때만 파일을 불러와서 값을 읽고, 경로가 존재하지 않을 경우 경로가 없다고 알려주는 코드입니다.
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 객체지향에 대하여 (1) 클래스와 객체 (0) | 2023.12.30 |
---|---|
[Python] 파일 활용 방법 (2) 파일 쓰기 (1) | 2023.12.19 |
[Python] 모듈에 대하여 (0) | 2023.12.15 |
[Python] local 변수와 global 변수 (0) | 2023.12.13 |
[Python] 함수 input의 여러 형태 (2) | 2023.12.12 |