반응형
파일 생성하기
- open 함수를 이용해서 프로그램을 실행한 디렉터리에 새로운 파일을 생성한다.
# 파일 생성 기본형
파일 객체 = open(파일 이름, 파일 열기 모드)
- r (읽기모드): 파일을 읽기만 할 때만 사용
- w (쓰기모드): 파일에 내용을 쓸 때만 사용. 해당 파일이 이미 존재하는데 파일을 쓰기 모드로 열면 원래 있던 내용이 모두 사라지고, 해당 파일이 존재하지 않으면 새로운 파일이 생성
- a (추가모드): 파일의 마지막에 새로운 내용을 추가시킬 때만 사용
f = open("새파일.txt", 'w') # 파일이름, 파일열기모드를 입력값으로
f.close() # 결과값으로 파일 객체를 돌려줌
# 특정 주소에 파일 생성 하고 싶을 때,
f = open("C:/doit/새파일.txt", 'w') # 쓰기모드로 연 파일 닫지 않으면 오류 발생
f.close() # 그래서 보통 close()로 파일 닫아줌
- 보통 파일 경로 표시할 때 슬래시 / 를 사용하는데 만약 역슬래시 \ 사용하려면, 역슬래시를 2번 입력하거나 r(문자열, raw string) 표시를 해줘야 한다.
add = "C:/note/새파일.txt"
add1 = "C:\\note\\새파일.txt" # 역슬래시 2개는 슬래시 1개와 같다
add2 = r"C:\note\새파일.txt" # \n과 같은 이스케이프 문자가 있을 경우를 대비해
# 앞에 r 문자열 표시해 줌
파일을 쓰기 모드로 열어 출력값 적기
- 모니터 화면에 출력
for i in range(1, 11):
data = "%d번째 줄입니다.\n" % i
print(data)
- 모니터 화면 대신 파일에 출력
f = open("C:/doit/새파일.txt", 'w')
for i in range(1, 11):
data = "%d번째 줄입니다.\n" % i
f.write(data) # print 대신 write 함수 이용
f.close()
프로그램의 외부에 저장된 파이썬 파일을 읽는 함수들
① read() 함수 이용: 파일의 내용 전체를 문자열로 리턴
f = open("C:/doit/새파일.txt", 'r')
data = f.read() # data는 파일의 전체 내용
print(data)
f.close()
② realine() 함수 이용: 한줄씩 읽어옴
f = open("C:/doit/새파일.txt", 'r') # 파일 읽기 모드로 염
line = f.readline() # 한줄씩 읽어옴
print(line)
f.close()
# 모든 라인을 출력하고 싶을 때
f = open("C:/doit/새파일.txt", 'r')
while True: # while True 무한 루프
line = f.readline() # 파일을 계속 한 줄씩 읽음
if not line: # 만약 더 읽을 라인이 없으면 멈춤
break
print(line) # 더 이상 읽을 라인 없으면 None
f.close()
③ readlines() 함수 이용: 파일의 모든 줄을 읽어서 각각의 줄을 요소로 갖는 리스트로 반환
f = open("C:/doit/새파일.txt", 'r')
lines = f.readlines() # 파일의 모든 라인을 리스트로 리턴
for line in lines:
print(line)
f.close()
파일에 새로운 내용 추가
- 쓰기 모드('w')로 파일을 열 때 이미 존재하는 파일을 열 경우 그 파일의 내용이 모두 사라짐. 하지만 원래 있던 값을 유지하면서 새로운 값만 추가하고 싶을 경우, 파일을 추가 모드('a')로 염.
f = open("C:/doit/새파일.txt",'a') # 파일을 추가 모드('a')로 열고
for i in range(11, 20):
data = "%d번째 줄입니다.\n" % i
f.write(data) # write를 이용해 결과값을 기존 파일에 추가
f.close()
With문과 함께 사용하기
- with문은 파일을 열고 닫는 것을 자동으로 처리
- 파일이 with 블록을 벗어나는 순간, 열린 파일 객체가 자동으로 닫힘
# 기존 방식
f = open("foo.txt", 'w')
f.write("Life is too short, you need python")
f.close()
# with문 사용
with open("foo.txt", "w") as f: # with 블록을 벗어나면
f.write("Life is too short, you need python") # 열린 파일 자동으로 닫힘
Reference
반응형
'Data > Python' 카테고리의 다른 글
[Python] 파이썬 클래스 - 변수와 메소드 (0) | 2023.06.17 |
---|---|
[Python] 파이썬 클래스 - 정의 및 생성자 (0) | 2023.06.17 |
[Python] 파이썬 입출력 - 사용자 입력과 출력 (0) | 2023.06.17 |
[Python] 파이썬 함수 - def, lambda (0) | 2023.06.17 |
[Python] 파이썬 제어문 - for 반복문, continue, List comprehension (0) | 2023.06.17 |