파일입출력
파일쓰기
open(파일경로,모드)
r : 읽기 파일이 없는 경우 예외발생
w : 쓰기, 파일이 없으면 새로 생김
a : 추가
x : 쓰기용으로 여나 기존 파일이 있는 경우 실패
t : text모드로 열기
b :binary모드로 열기
f = open("live.txt","wt",encoding="utf-8")
f.write(""" 삶이 그대를 속일지라도
슬퍼어쩌고
우울한 어쩌고
믿으라, 기쁨의 날이 오리니""")
f.close()
|
파일 읽기
f.readline()
f.readlines()
def main():
try:
f = open("live.txt","rt",encoding="utf-8")
text = f.read()
lines = text.split('\n')
print(lines)
for ix,line in enumerate(lines, 1):
print(f'{ix} : {line}')
f.close()
except FileNotFoundError:
print("파일이 없습니다.")
finally:
f.close()
main()
|
def main():
try:
f = open("live.txt","rt",encoding="utf-8")
text = ""
line = 1
while True:
row = f.readline()
if not row: break
text += str(line)+":"+row
line += 1
f.close()
print(text)
except FileNotFoundError:
print("파일이 없습니다.")
finally:
f.close()
main()
|
def main():
f = open("live.txt","rt",encoding="utf-8")
rows = f.readlines()
print(rows)
for row in rows:
print(row,end = "")
f.close()
main()
|
입출력 위치
seek(위치,기준)
내용추가
w모드
기존에 파일이 존재하는 경우 내용을 모두 지우고 다시 작성
a모드
기존에 파일이 존재하는 경우 파일의 끝에 내용을 추가
f = open("live.txt","at",encoding="utf-8")
f.write("\n\n푸쉬퀸 형님의 말씀")
f.close()
|
with ~ as문(컨텍스트 매니저)
open() 함수와 함께 with as문을 사용하면 명시적으로
close()함수를 호출하지 않아도 파일이 항상 닫힘
def main():
datas = [12,34,56,78,90]
#리스트의 내용을 data.txt파일로 저장하세요.
# 12,34,56,78,89
content = [ str(n) for n in datas ]
print(content)
content = []
for n in datas:
content.append(str(n))
print(content)
content = list(map(str,datas))
print(content)
#리스트 --> '12','34','56'
content = ",".join(content)
print(content)
try:
with open("data.txt","w") as f:
f.write(content)
except Exception as e :
print(e)
main()
|
#data.txt 파일을 읽어서.
#datas = [12,34,56,78,90]
def main():
try :
with open("data.txt","rt") as f:
content = f.read()
print(content)
datas = content.split(',')
print(datas)
datas = list(map(int,datas))
print(datas)
except Exception as e:
print(e)
main()
|
파일 입출력
pickle모듈
파이썬 자료형 그대로 저장하고, 그래도 로드(복원)
반드시 binary 모드로 오픈해야함
다른 언어와의 호환성은 없음
import pickle
저장하기
pickle.dump(data,file)
로드하기
data = pickle.load(file)
'파이썬 > 파일처리' 카테고리의 다른 글
파이썬 파일처리 2 (0) | 2022.01.12 |
---|