본문 바로가기

Programming/Phython

[파이썬] 15. 파일 읽고 쓰기

반응형

파일 생성하기

f = open("새파일.txt", 'w')
f.close()

파일 생성 기본 구조

파일 객체 = open(파일 이름, 파일 열기 모드)

파일 열기 모드

파일 열기 모드 설명
r 읽기 모드 - 파일을 읽기만 할 때 사용
w 쓰기 모드 - 파일에 내용을 쓸 때 사용
a 추가 모드 - 파일의 마지막에 새로운 내용을 추가 시킬 때 사용

 

파일을 쓰기 모드로 열어 출력값 적기

# writedata.py
f = open("C:/doit/새파일.txt", 'w')
for i in range(1, 11):
    data = "%d번째 줄입니다.\n" % i
    f.write(data)
f.close()

프로그램의 출력값을 파일에 직접 입력

for i in range(1, 11):
    data = "%d번째 줄입니다.\n" % i
    print(data)

프로그램의 출력값을 모니터 화면에 출력

C:\Users> cd C:\doit
C:\doit>python writedata.py
C:\doit>

명령 프롬프트에서 실행하면 새파일.txt가 생성

 

프로그램의 외부에 저장된 파일을 읽는 여러 가지 방법

 

1. readline() 함수 이용하기

# readline_test.py
f = open("C:/doit/새파일.txt", 'r')
line = f.readline()
print(line)
f.close()

가장 첫번째 줄이 화면에 출력

# readline_all.py
f = open("C:/doit/새파일.txt", 'r')
while True:
    line = f.readline()
    if not line: break
    print(line)
f.close()

모든 줄을 읽어서 화면에 출력

->while True: 무한 루프 안에서 f.readline()을 사용해 파일을 계속해서 한 줄씩 읽어 들인다. 만약 더 이상 읽을 줄이 없으면 break를 수행한다(readline()은 더 이상 읽을 줄이 없을 경우 빈 문자열('')을 리턴한다).

 

while 1:
    data = input()
    if not data: break
    print(data)

사용자의 입력을 받아서 그 내용을 출력하는 함수

 

2. readline 함수 사용하기

f = open("C:/doit/새파일.txt", 'r')
lines = f.readlines()
for line in lines:
    print(line)
f.close()

readlines 함수는 파일의 모든 줄을 읽어서 각각의 줄을 요소로 갖는 리스트로 돌려준다. 

 

3. read 함수 사용하기

f = open("C:/doit/새파일.txt", 'r')
data = f.read()
print(data)
f.close()

f.read()는 파일의 내용 전체를 문자열로 돌려준다.


파일에 새로운 내용 추가하기

 

=>쓰기 모드('w')로 파일을 열 때 이미 존재하는 파일을 열면 그 파일의 내용이 모두 사라지게 된다. 하지만 원래 있던 값을 유지하면서 단지 새로운 값만 추가해야 할 경우도 있다. 이런 경우에는 파일을 추가 모드('a')로 열면 된다.

# adddata.py
f = open("C:/doit/새파일.txt",'a')
for i in range(11, 20):
    data = "%d번째 줄입니다.\n" % i
    f.write(data)
f.close()


C:\Users> cd C:\doit
C:\doit>python adddata.py
C:\doit>

새파일.txt 파일을 추가 모드('a')로 열고 write를 사용해서 결괏값을 기존 파일에 추가해 적는 프로그램

추가 모드이므로 새파일.txt 파일이 원래 가지고 있던 내용 바로 다음부터 결괏값을 적기 시작한다.

 

 

 

with문과 함께 사용하기

f = open("foo.txt", 'w')
f.write("Life is too short, you need python")
f.close()

파일을 열면 위와 같이 항상 close해 주는 것이 좋다. 

with open("foo.txt", "w") as f:
    f.write("Life is too short, you need python")

with문을 사용하면 with 블록을 벗어나는 순간 열린 파일 객체 f가 자동으로 close된다.

 

 

 

sys 모듈로 매개변수 주기

파이썬에서는 sys 모듈을 사용하여 매개변수를 직접 줄 수있다. sys 모듈을 사용하려면 아래 예의 import sys처럼 import 명령어를 사용해야 한다.

 

#sys1.py
import sys

args = sys.argv[1:]
for i in args:
    print(i)

입력받은 인수를 for문을 사용해 차례대로 하나씩 출력하는 프로그램이다.

argv[0] 은 파일 이름 sys1.py가 되고 argv[1] 부터는 뒤에 따라오는 인수가 차례로 argv의 요소가 된다.

#sys2.py
import sys
args = sys.argv[1:]
for i in args:
    print(i.upper(), end=' ')

문자열 관련 함수인 upper()를 사용하여 명령 행에 입력된 소문자를 대문자로 바꾸어 주는 간단한 프로그램이다.

반응형

'Programming > Phython' 카테고리의 다른 글

[파이썬] 프로그램의 입력과 출력 정리  (0) 2021.02.16
[파이썬] 14. 사용자 입력과 출력  (0) 2021.02.15
[파이썬] 13. 함수  (0) 2021.02.14
[파이썬] 조건문 정리  (0) 2021.02.14
[파이썬] 12. for문  (0) 2021.02.14