파일 생성하기

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

f.close()

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

파일 열기 모드

파일열기모드

설명

r

읽기모드 - 파일을 읽기만 할 때 사용

w

쓰기모드 - 파일에 내용을 쓸 때 사용

a

추가모드 - 파일의 마지막에 새로운 내용을 추가 시킬 때 사용

 

파일을 쓰기 모드로 열게 되면 해당 파일이 이미 존재할 경우 원래 있던 내용이 모두 사라지고, 해당 파일이 존재하지 않으면 새로운 파일이 생성된다.

 

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

 

f = open("C:/Python/새파일.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)

두 프로그램의 다른 점은 data를 출력하는 방법이다. 두 번째 방법은 우리가 계속 사용해 왔던 모니터 화면에 출력하는 방법이고, 첫 번째 방법은 모니터 화면 대신 파일에 결과값을 적는 방법이다. 두 방법의 차이점은 print 대신 파일 객체 fwrite 함수를 이용한 것이다.

 

 

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

readline()

f = open("C:/Python/새파일.txt", 'r')

line = f.readline()

print(line)

f.close()

 

readlines()

f = open("C:/Python/새파일.txt", 'r')

lines = f.readlines()

for line in lines:

    print(line)

f.close()

readlines() 함수는 파일의 모든 라인을 읽어서 각각의 줄을 요소로 갖는 리스트로 리턴한다. 따라서 위의 예에서 lines["1 번째 줄입니다.\n","2 번째 줄입니다.\n",..., "10 번째 줄입니다.\n"]라는 리스트가 된다.

 

read()

f = open("C:/Python/새파일.txt", 'r')

data = f.read()

print(data)

f.close()

 

f.read()는 파일의 내용 전체를 문자열로 리턴

 

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

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

 

f = open("C:/Python/새파일.txt",'a')

for i in range(11, 20):

    data = "%d번째 줄입니다.\n" % i

    f.write(data)

f.close()

 

추가 모드로 파일을 열었기 때문에 새파일.txt라는 파일이 원래 가지고 있던 내용 바로 다음부터 결과값을 적기 시작한다.

 

with문과 함께 사용하기

with open("foo.txt", "w") as f:

f.write("Life is too short, you need python")

위와 같이 with문을 이용하면 with 블록을 벗어나는 순간 열린 파일 객체 f가 자동으로 close되어 편리하다. (with구문은 파이썬 2.5부터 지원됨)

 

sys 모듈로 입력 인수 주기

import sys

args = sys.argv[1:]

for i in args:

    print(i.upper(), end=' ')

문자열 관련 함수인 upper()를 이용하여 명령 행에 입력된 소문자를 대문자로 바꾸어 주는 간단한 프로그램이다. 도스창에서 다음과 같이 입력해 보자.

 

C:\~>python sys2.py life is too short, you need python

LIFE IS TOO SHORT, YOU NEED PYTHON

 

argv[0] : 프로그램명

argv[1:] : 인수요소


참조 : 점프 투 파이썬 (https://wikidocs.net/26)

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

Lambda함수  (0) 2017.05.10
사용자 입출력  (0) 2017.05.08
함수  (0) 2017.05.08
for 문  (0) 2017.05.08
while 문  (0) 2017.05.08

+ Recent posts