[Python Note] 파일 읽고 쓰기
파일 열기모드 | 설명 |
---|---|
w | 파일 쓰기 |
r | 파일 읽기 |
a | 파일에 내용 추가 |
1. 파일 생성하기(w)
- 생성할 파일 이름만 입력하면 경로는 작성하고 있는 python 파일의 경로와 같다.
- 경로를 지정하고 싶다면
/
또는\\
를 사용하거나\
를 사용하고 경로의 앞에r
문자를 덧붙여 사용한다.
ex)"C:/Users/narae/Desktop"
or"C:\\Users\\narae\\Desktop"
orr"C:\Users\narae\Desktop"
- 파일을 작성하고
파일.close()
를 이용해서 직접 닫아주어야 한다.
myfile = open("newfile.txt","w")
for i in range(1,6):
line = "%d번째 라인이 생성되었습니다.\n" % i
myfile.write(line)
myfile.close()
2. 파일 읽기(r)
read()
: 파일의 내용을 하나의 문자열로 불러온다.
myfile = open("newfile.txt","r")
print(myfile.read())
myfile.close()
# '\n'을 '/'로 대체하면 하나의 문자열임을 알 수 있다.
string = data.replace("\n","/")
print(string)
1번째 라인이 생성되었습니다.
2번째 라인이 생성되었습니다.
3번째 라인이 생성되었습니다.
4번째 라인이 생성되었습니다.
5번째 라인이 생성되었습니다.
1번째 라인이 생성되었습니다./2번째 라인이 생성되었습니다./3번째 라인이 생성되었습니다./4번째 라인이 생성되었습니다./5번째 라인이 생성되었습니다./
readline()
: 파일의 첫 번째 line부터 한 개의 line을 불러온다.
# 한 줄 씩 불러오기. '\n'이 적용되어 있음을 알 수 있다.
myfile = open("newfile.txt","r")
print(myfile.readline())
print(myfile.readline())
print(myfile.readline())
print(myfile.readline())
print(myfile.readline())
myfile.close()
1번째 라인이 생성되었습니다.
2번째 라인이 생성되었습니다.
3번째 라인이 생성되었습니다.
4번째 라인이 생성되었습니다.
5번째 라인이 생성되었습니다.
readlines()
: 파일의 모든 line을 리스트 형식으로 불러온다.
# 한꺼번에 전체 내용 불러오기
myfile = open("newfile.txt","r")
all = myfile.readlines()
print(all)
for i in all:
print(i)
myfile.close()
['1번째 라인이 생성되었습니다.\n', '2번째 라인이 생성되었습니다.\n', '3번째 라인이 생성되었습니다.\n', '4번째 라인이 생성되었습니다.\n', '5번째 라인이 생성되었습니다.\n']
1번째 라인이 생성되었습니다.
2번째 라인이 생성되었습니다.
3번째 라인이 생성되었습니다.
4번째 라인이 생성되었습니다.
5번째 라인이 생성되었습니다.
- 응용: 파일의
\n
을 제거한 후 불러오기
myfile = open("newfile.txt","r")
all = myfile.readlines()
for i in all:
print(i.rstrip())
myfile.close()
1번째 라인이 생성되었습니다.
2번째 라인이 생성되었습니다.
3번째 라인이 생성되었습니다.
4번째 라인이 생성되었습니다.
5번째 라인이 생성되었습니다.
3. 파일 내용 추가하기(a)
myfile = open("newfile.txt","a")
for i in range(6,11):
line = "%d번째 라인이 추가되었습니다.\n" % i
myfile.write(line)
myfile.close()
4. 파일.close() 자동으로 적용하기(with문)
with open("file.txt","w or r or a") as myfile
- with문을 사용하면 따로
myfile.close()
를 사용하지 않아도 된다.
with open("newfile.txt","a") as myfile:
for i in range(11,16):
line = "with문을 이용하여 %d번째 라인을 추가했습니다.\n" % i
myfile.write(line)
댓글남기기