파이썬으로 txt 파일을 읽고 쓸 수가 있습니다. r, w, a 모드가 있으며, r모드는 읽기 모드(read), w모드는 쓰기 모드(write), a모드는 추가 모드(append)입니다. w 쓰기 모드와 a추가 모드가 비슷하여 헷갈릴 수가 있는데, w 쓰기 모드는 파일을 리셋한 후 다시 작성하는 것이고, a추가 모드는 파일 마지막 부분에 추가한다는 차이가 있습니다.
- r = 읽기 모드 (read)
- w = 쓰기 모드 (write)
- a = 추가 모드 (append)
os모듈로 작업 폴더를 바꿀 수가 있습니다. import os 작성으로 사용할 수 있으며, os모듈은 파이썬 설치할 때 같이 깔리는 모듈입니다. 또한 경로를 지정할 때는 os.chdir(r"경로")라고 작성합니다. 경로에는 C:\python3.9처럼 \표시가 들어가는데, \표시마다 \를 한 번 더 표시해줘야 합니다. 그런데 r"경로"를 작성하면\을 한 번 더 작성할 필요 없이 C:\python3.9만으로 사용 가능합니다. (r작성 안 할 경우 C:\\python3.9 이런 식으로 작성) 바꾼 경로를 확인할 때는 os.getcwd() 함수로 확인 가능합니다.
import os ### os모듈을 불러옴
os. chdir(r"C:\test") ### 경로바꿈
print(os.getcwd()) ### 경로확인
C:\test
### r사용 안할때
import os
os. chdir("C:\\test") ### r대신\한번더 작성
print(os.getcwd())
C:\test
w 쓰기 모드
파일을 리셋하고 새롭게 씁니다.
os모듈을 사용해서 경로를 바꾸고, test폴더에 test파일을 만들어서 쓰기모드 테스트라는 문구가 나오는 코드를 작성해 봅시다.
import os
os. chdir("C:\\test")
f=open("test.txt","w") ### f객체생성,txt파일생성,
f.write("쓰기모드 테스트") ### f객체에 쓸 문구 작성
f.close() ### 닫아줌
쓰기모드 테스트 ### 폴더에가면 test파일이 있고, 안에 문구작성됨
a 추가 모드
파일에 있는 자료는 남겨두고 마지막에 추가합니다. 위에 만든 파일에 테스트성공 이라는 문구를 추가해봅시다.
### 위에 만든 파일에 테스트성공 이라는 문구 추가하기
import os
os. chdir("C:\\test")
f=open("test.txt","a") ### 추가모드사용
f.write("\n테스트성공") ### \n은 줄바꾸기
f.close()
쓰기모드 테스트
테스트성공
with키워드를 사용하면 close() 함수를 사용 안 해도 됩니다. with open("파일이름","모드") as 객체이름: 이렇게 작성해서 사용하므로 코드가 한결 간편해집니다.(close()함수사용안함)
import os
os.chdir(r"c:\test")
with open("test2.txt","w") as f: ### as사용으로 f객체만듬
f.write("with as 테스트중") ### 파일에 적을문구
with as 테스트중
영어단어 입력하는 파일 만들기
- import, while, try, except, if~else, with~as 사용함
import os
os.chdir(r'C:\test')
while True:
try:
word = input("영어단어 : ")
mean = input("그 뜻은 무엇인가요? : ")
with open("english.txt", "a") as e:
e.write(word)
e.write(":")
e.write(mean)
e.write("\n")
except:
pass
your_input = input("멈추고싶으면 stop입력하세요.")
if your_input == "stop":
break
else:
continue
print("단어를 다 입력했습니다.")
### 해석
import os ### os모듈 불러옴
os.chdir(r'C:\test') ### os모듈의chdir사용함
while True: ### 반복문사용
try: ### 해야할일
word = input("영어단어 : ") ### 입력값기다림
mean = input("그 뜻은 무엇인가요? : ") ### 입력값기다림
with open("english.txt", "a") as e: ### english파일의 추가모드 e객체만듬
e.write(word) ### e객체의 쓰기 word값입력
e.write(":") ### e객체의 쓰기 :입력
e.write(mean) ### e객체의 쓰기 mean값입력
e.write("\n") ### e객체의 쓰기 한줄띄움
except: ### 오류가났을때
pass ### 아무일안함
your_input = input("멈추고싶으면 stop입력하세요.") ### 입력값기다림
if your_input == "stop": ### your_input값이 stop이라면 break
break ### while문 끝남 끝으로 이동
else: ### stop이 아니라면
continue ### 처음부터
print("단어를 다 입력했습니다.") ### 끝
r 읽기 모드
readline() 함수는 한 줄씩 읽고, readlines() 함수는 여러 줄을 읽습니다. s를 붙여서 복수다 아니다 라는 차이점입니다. readline()는 한 줄씩 읽다가 줄이 없으면 break를 합니다.
import os
os.chdir(r'C:\test')
with open("english.txt","r") as e:
while True:
line=e.readline()
if not line:
break
print(line)
### 해석
import os ### os모듈 불러옴
os.chdir(r'C:\test') ### os모듈의 chdir함수사용
with open("english.txt","r") as e: ### english파일 읽기, 객체이름e
while True: ### 반복문사용
line=e.readline() ### line변수는 e객체의 한줄씩 읽기
if not line: ### line변수가 없다면
break ### 나가기
print(line) ### line출력
readlines()는 한 번에 다 읽기 때문에 while문을 쓸 필요가 없고, 리스트로 보여줍니다.
import os
os.chdir(r'C:\test')
with open("english.txt","r") as e:
lines=e.readlines()
print(lines)
### 해석
import os ### os모듈 불러옴
os.chdir(r'C:\test') ### os모듈의 chdir함수사용
with open("english.txt","r") as e: ### english파일 읽기, 객체이름e
lines=e.readlines() ### lines변수는 한번에 읽기,리스트로읽음
print(lines) ### lines출력
'파이썬' 카테고리의 다른 글
자주사용하는 VS code (비주얼 스튜디오 코드) 단축키 정리 (0) | 2022.07.12 |
---|---|
자주사용하는 파이썬 함수 (키워드) 정리 (1) | 2022.07.11 |
파이썬 공부하기 기초부터 시작 (모듈과 패키지) (0) | 2022.07.08 |
파이썬 공부하기 기초부터 시작 (클래스) (0) | 2022.07.07 |
파이썬 공부하기 기초부터 시작 (함수) (0) | 2022.07.06 |
댓글