본문 바로가기

프로그래밍언어/Python

ch04. 파이썬 프로그래밍 프로그램 입출력 (파일 읽고 쓰기)

반응형

3. 파일 읽고 쓰기

 

■ 파일 생성

# 파일 객체 = open(파일 이름, 파일 열기 모드)
f = open("새파일.txt", 'w')
f.close()

  - 파일 열기 모드

    • r: 읽기모드

    • w: 쓰기모드, 기존 파일이 없어지고 새로운 파일이 생성된다.

    • a: 추가모드 (append), 파일의 마지막에 새로운 내용 추가시 사용

 

  - f.close(): 열려있는 파일 객체를 닫아준다.

    • python은 기본적으로 프로그램 종료시 열려있는 파일 객체를 자동으로 닫아준다.

    • 파일 객체를 닫지않고 재사용하려 하면 오류가 발생하므로 닫아주는 것이 좋다.

 

■ 파일 쓰기모드

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

'''
1번째 줄입니다.
2번째 줄입니다.
3번째 줄입니다.
3번째 줄입니다.
4번째 줄입니다.
5번째 줄입니다.
6번째 줄입니다.
7번째 줄입니다.
8번째 줄입니다.
9번째 줄입니다.
10번째 줄입니다.
'''

  - 파일객체.write(...) 함수를 이용해서 파일 내용 작성

 

■ 프로그램 외부의 파일 읽기

  - readline()

    • 한 줄을 읽어온다.

    • 더 이상 읽어올 내용이 없는 경우 빈 문자열 ('')을 반환한다.

f = open("C:/doit/새파일.txt", 'r')
line = f.readline()
print(line)    # 1번쨰 줄입니다.
f.close()

 

  - readlines()

    • 파일의 모든 줄을 읽어와서 리스트 형식으로 반환한다.

f = open("C:/doit/새파일.txt", 'r')
lines = f.readlines()
for line in lines:
    print(line)
'''
1번째 줄입니다.
2번째 줄입니다.
...
10번째 줄입니다.
'''

f.close()

 

  - read()

    • 파일의 내용 전체를 문자열로 돌려준다.

f = open("C:/doit/새파일.txt", 'r')
data = f.read()
print(data)
'''
1번째 줄입니다.
2번째 줄입니다.
...
10번째 줄입니다.
'''

f.close()

 

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

  - w모드를 사용하는 경우 기존의 내용을 잃어버린다.

  - 기존의 내용에 새로운 내용을 추가하는 경우 a모드를 사용한다.

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

'''
1번째 줄입니다.
2번째 줄입니다.
...
10번째 줄입니다.
11번째 줄입니다.
...
19번째 줄입니다.
'''

 

■ with문 사용

  - with문 사용하여 파일 객체 오픈시, with문을 벗어나는 순간 자동으로 파일 객체가 close 된다.

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

 

※ sys 모듈로 매개변수 주기

  - sys 모듈을 사용하여서 명령어의 매개변수를 사용하도록 설정

  - 명령 프롬프트 명령어 [인수1 인수2 ...]

#sys1.py
import sys

args = sys.argv[1:]
for i in args:
    print(i)
'''
[실행]
python3 sys1.py aaa bbb ccc

[출력]
aaa
bbb
ccc
'''
반응형