파일생성하기
f = open("새파일.txt", 'w')
f.close()
이렇게 하면 프로그램을 실행한 디렉토리에 새 파일이 생성된다. 내장함수 open 을 사용했다. open 함수는 '파일이름'과 '파일열기모드'를 입력값으로 받고 결과값으로 파일 객체를 돌려준다.
<파일열기모드>
파일열기모드 | 설명 |
---|---|
r | 읽기모드 - 파일을 읽기만 할 때 사용 |
w | 쓰기모드 - 파일에 내용을 쓸 때 사용 |
a | 추가모드 - 파일의 마지막에 새로운 내용을 추가할 때 사용 |
❗️ 파일을 쓰기모드로 열면 해당 파일이 이미 존재할 경우 원래 있던 내용이 모두 사라지고, 해당 파일이 존재하지 않으면 새로운 파일이 생성된다.
❗️ f.close() 는 열려있는 파일 객체를 닫아주는 역할을 한다. 쓰기모드로 열었던 파일을 닫지 않고 다시 사용하려 하면 오류가 발생한다.
파일을 쓰기모드로 열어 출력값 적기
f = open("파일주소", 'w')
for i in range(1, 11):
data = "%d번째 줄입니다.\n" % i
f.write(data) #data를 파일객체 f에 써라
f.close()
이렇게 실행하고 해당 파일을 들어가서 확인해 보면 출력될 내용이 파일에 들어있는 것을 확인할 수 있다.
프로그램 외부에 저장된 파일을 읽는 여러 방법
# readline 함수 이용
f = open("파일주소", 'r') # r을 써서 읽기모드
line = f.readline()
print(line)
f.close()
-> readline()을 사용해 파일의 첫번째 줄을 읽어 출력한다.
모든 줄을 출력하고 싶다면 아래와 같이 작성한다.
f = open("파일주소", 'r')
while True:
line = f.readline()
if not line = break
print(line)
f.close()
무한루프를 이용해 모든 줄을 출력한다. 더이상 읽을 줄이 없으면 break를 수행하게 만든다.
# readlines 함수 이용
f = open("파일주소", 'r')
lines = f.readlines()
for line in lines:
print(line)
f.close()
readlines 함수는 파일의 모든 줄을 읽어서 각각의 줄을 요소로 갖는 리스트로 돌려준다. readline과는 's'하나 차이이므로 주의.
# read 함수 이용
f = open("파일주소", 'r')
data = f.read()
print(data)
f.close()
f.read() 는 파일 내용 전체를 문자열로 돌려준다.
파일에 내용 추가하기
f = open("파일주소", 'a')
for i in range(11, 20):
data = '&d번째 줄입니다.\n' % i
f.write(data)
f.close()
'a' 추가모드를 이용해 기존 파일에 내용을 추가한다.
with문과 함께 사용하기
f = open("파일주소", 'w')
f.write("파일에적을내용")
f.close()
'''
위의 코드는 파일을 열고 닫고를 직접 입력했다. 더 편리하게 이용하려면 with문을 이용한다.
'''
with open("파일주소", "w") as f:
f.write("파일에적을내용")
# with 블록을 벗어나는 순간 파일 객체 f가 자동으로 close된다