01. 파일 읽고 쓰기
file = open("my_file.txt")
contents = file.read(
file.close()
- "with" 기능 없이 파일을 단순히 연다면, 마지막에 file.close()를 해주어야 함.
- file을 open 하면 컴퓨터의 resource를 잡아먹으므로, 작업이 끝난 후, close()를 해주어야 함.
- 이러한 행위를 하지 않기 위해 "with" 기능을 사용함. "with"가 직접 파일을 관리하기 때문에, 작업이 끝난 직후 파일을 자동으로 닫아줌.
with open("my_file.txt", mode = "r") as file:
contents = file.read()
print(contents)
with open("my_file.txt",mode="w") as f:
f. write("New text.")
with open("my_file.txt",mode="a") as f:
f. write("\nadd text.")
- mode = "r" : 읽기 전용
- mode = "w" : 읽고 쓰기, 에전 내용을 지우고, 새로 쓰는 것
- mode = "a" : 읽고 쓰기, 예전 내용 살려두고, 새로운 내용 추가하는 것
- 만약, 파일을 쓰려고 하는데 파일이 존재하지 않는다면 파이썬은 자동으로 파일을 생성한다.
02. 상대 및 절대 파일 경로
- 절대 파일 경로(Absolute File Path) : root를 기준으로 파일 경로를 작성한다. 맥은 매킨토시 HD가 됨.
- 다만, root를 굳이 입력할 필요 없고, "/" 맨 앞에 작성해주면 된다.
- 상대 파일 경로(Relative File Path) : working directory를 기준으로 시작함. 같은 폴더에 존재하는 파일에 접근하려면 ./file.txt 이런식으로 작성됨. "./" 는 삭제 가능하다.
- 만약 상위 폴더로 접근하려면 "../" 작성해야 함. "../" 는 부모 폴더로 가는 계층 구조에서 한 단계 위로 가라는 의미이다.
with open("/Users/users/Desktop/my_file.txt") as file:
contents = file.read()
print(contents)
with open("../../Desktop/new_file.txt") as f:
con = f.read()
print(con)
03. 유용한 methods
04. mailing systems
PLACEHOLDER = "[name]"
with open("./Input/Names/invited_names.txt") as names_file:
names = names_file.readlines()
with open("./Input/Letters/starting_letter.txt") as letter_file:
letter_contents = letter_file.read()
for name in names:
stripped_name = name.strip()
new_letter = letter_contents.replace(PLACEHOLDER, stripped_name)
with open(f"./Output/ReadyToSend/letter_for_{name}.txt", mode = "w") as completed_letter:
completed_letter.write(new_letter)