파일 열기모드 설명
w 파일 쓰기
r 파일 읽기
a 파일에 내용 추가

1. 파일 생성하기(w)

  • 생성할 파일 이름만 입력하면 경로는 작성하고 있는 python 파일의 경로와 같다.
  • 경로를 지정하고 싶다면 / 또는 \\를 사용하거나 \를 사용하고 경로의 앞에 r 문자를 덧붙여 사용한다.
    ex) "C:/Users/narae/Desktop" or "C:\\Users\\narae\\Desktop" or r"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)

댓글남기기