04-3 파일 읽고 쓰기
f = open("새파일.txt", 'w')
f.close()
해당 코드문을 수행하자 새파일.txt가 생김
""안의 내용이 상대경로라고 하는데
파일이름만 쓰면 그 스크립트를 실행한 위치에 파일생성
f = open("doit/새파일.txt", 'w')
f.close()
이렇게 하면 doit 폴더내에 새파일 생성함
# write_data.py
f = open("C:/doit/새파일.txt", 'w')
for i in range(1, 11):
data = "%d번째 줄입니다.\n" % i
f.write(data)
f.close()
C드라이브 밑에 doit폴더가 없으면 생성 안됨
그래서 생성해주면.. 새파일이 생성됨
출력된 결과물도 나옴
한글 깨질때는 encoding ="UTF-8"를 넣어주자
f = open("C:/doit/새파일.txt", 'r', encoding="UTF-8")
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()
f.readline()은 한줄씩 계속 읽는데
Not line은 line == ""일떄 True가 된다. 파일 끝에 도달하면 break하란 뜻
마지막엔 빈문자열이 담김,
빈문자열이 원래 false인데 not을 만나서 true가 됨
그러면서 빠져나가게 됨
원래 line에 \n이 포함되어 한줄 띄는데
Print(line)에서 한줄 더 띄게 됨
while True:
data = input()
data = int(data)
if not data:
break
print(data)
원래는 input 타입은 스트링 고정인데
Int타입 넣으면 됨
그런 후 숫자0을 넣으면 종료가 됨 0은 False니까
readlines 함수 사용하기
f = open("C:/doit/새파일.txt", 'r', encoding="UTF-8")
lines = f.readlines()
for line in lines:
line = line.strip() # 줄 끝의 줄 바꿈 문자를 제거한다.
print(line)
f.close()
readlines()함수는 리스트를 읽어 오는것
여기 있는 파일들을 다 모아서 담아 주는것
라인스 중에 하나씩 뽑아와서 라인을 뽑아서 출력을 해준다
그래서 요소하나씩 반복문을 돌면서 출력한다
Line.strip()은 줄 바꿈 문자를 제거하는 것
Replace()함수로도 '\n'을 공백으로도 바꾸기 가능
read 함수 사용하기
# read.py
f = open("C:/doit/새파일.txt", 'r', encoding="UTF-8")
data = f.read()
print(data)
f.close()
f.read()는 파일의 내용 전체를 문자열로 반환한다.
파일 자체를 통째로 가져와서 데이터에 넣고
출력을 해보면 통째로 다 나옴
파일 객체를 for 문과 함께 사용하기
# read_for.py
f = open("C:/doit/새파일.txt", 'r', encoding="UTF-8")
for line in f:
print(line)
f.close()
어떤 파일을 열어서 담으면
F자체를 하나로 리스트로 생각해서
For문안에있으면 한줄씩 뽑아올수 있다
리드라인스를 한것처럼 파일객체안에서도
이렇게 한줄씩 한줄씩기본적으로 뽑아올수 있게 파이썬에서 설계됨
파일에 새로운 내용 추가하기
새로운값만 추가하려면 'a'모드
W모드는 어떻게 될까? 덮어서 씌어진다 11~19로 바뀜
with 문과 함께 사용하기
f = open("foo.txt", 'w')
f.write("Life is too short, you need python")
f.close()
한번 열은 문서는 다 쓰고 클로즈를 해 줘야 함
With로 하면 자동처리 됨
# file_with.py
with open("foo.txt", "w") as f:
f.write("Life is too short, you need python")
나온결과를 f에 저장
위드구문은 들여쓰기 안쪽 여기에서만 사용되는 지역변수