파일 읽고 쓰기
파일의 필요성 : 전원이 꺼지더라도 파일이 저장된다.
파일 경로 : 파일이 저장되어 있는 실제 위치를 명시한다.
파일 입력 관련 함수
- read()
- readline()
- readlines()
- write()
- writelines()
파일에서 데이터 읽기
1. 파일 열기
파일의 내용을 읽거나 파일에 뭔가를 쓰기 위해서 파일열기를 해주어야함
open -> 파일의 존재 여부를 확인
<선언>
r = 파일 읽기 만
w =파일에 내용 쓸때 만
a = 파일에 내용을 추가 할때
2. 파일에서 데이터를 읽거나 쓰기
read()
readline()
readlines()
3. 파일과 관련된 작업이 모두 종료되면 파일 닫기
(실습 1)
import os.path #파일 경로 등 확인을 위한 함수를 가지고 있는 모듈
f2 = open("bs.txt","w")#소스와 같은 위치 생성
if os.path.isfile("b.txt"):
print("해당 파일이 이미 존재합니다. 이름 지정 다시하세요.")
else:
f2 = open("b.txt","w") #write모드로 파일 열기
f2.write("Hello Python\n") #write모드로 open한 파일에 내용쓰기 , 자동줄바꿈이 되지 않는다.
f2.write('Hi')
f2.close()
- 변수 명 = open("생성을 원하는 해당 경로", "원하는 작업"):
"d:/python_test/b.txt" : "d:/python_test/ 폴더에 b.txt를 작성해준다.
"b.txt" : 현재 프로젝트가 저장되어있는 폴더에 작성된다.
- import os.path : 파일 경로 등 확인을 위한 함수를 가지고 있는 모듈
- os.path.isfile("b.txt"): 해당 파일이 존재하는지 판별 한다.
경로를 찾을때 , \는 \\두개 , /는 / 하나만 사용한다.
(실습 2)경로에 bs.txt라는 파일이 있으면 b.txt 파일을 열어서 open한 파일 내용 출력하기
import os.path
if os.path.isfile("bs.txt"):
f1 = open("b.txt","r") #read 모드로 파일 열기
data = f1.read() #read 모드로 open한 파일 내용 읽기
print(data)
f1.close() # 파일 닫기
else:
print("해당 파일이 없음")
* .read() #read() :파일 내용 전체를 다 읽어옴
(실습 3)readline() 사용하여 출력하기
import os.path
f= open("b.txt","r")
result = f.readline() #readline() :파일 한줄씩 읽어온다.
print(result)
f.close()
//readline()은 한줄 씩 읽기 때문에 다음 문장들이 출력 되지 않는다.
import os.path
f= open("b.txt","r")
result = f.readline()
print(result)
while result != "":
result = f.readline()
print(result)
f.close()
readline()을 사용하면 한 줄씩 출력 되기 때문에 다음과 같이 while을 사용하여 출력해주어야한다.
(+추가).rstrip() 사용하기
import os.path
f= open("b.txt","r")
result = f.readline().rstrip() #readline() :파일 한줄씩 읽어온다.
print(result)
while result != "":
result = f.readline().rstrip() #.rstrip() :오른쪽에 필요없는 부분을 자름, '\n'없앰
print(result)
f.close()
(실습 4) readlines() 사용하여 파일 출력하기
* readlines() :파일 내용 전체를 읽어서 리스트 형식으로 반환함
import os.path
f= open("b.txt","r")
#리스트로 가져온다.
res =f.readlines()
print(res)
f.close()
new_res =[]
for i in res:
new_res.append(i.rstrip()) #오른쪽 필요없는것을 잘라줌
print(new_res)
//readlines()는 리스트 형식으로 반환한다//
* (l(왼쪽)/r(오른쪽)/s(양쪽))rstrip(): 필요없는 부분을 잘라준다.
#writ() 함수는 문자열 자료만 write한다. 숫자데이터는 write 불가능
#wrte는 int(정수형)으로 사용 불가능하다.
(실습 5)데이터를 입력받아 파일을 생성하고 데이터를 읽어오기
import os.path
f = open("friend.txt","w") #해당 위치에서 파일을 작성한다.
f.write("이름 \t 연락처 \n")
for i in range(5):
name = input(("이름 :"))
tel = input("연락처 :")
age = int(input("나이 :"))
f.write(name +"\t"+ tel+"\t"+str(age)+"\n")
f.close()
#파일을 읽어오기
f1 =open("friend.txt","r")
print(f1.read())
f1.close()
//friend라는 이름의 파일에 입력받은 데이터가 들어가 있는 것을 볼수 있다.
(실습 6)score.txt파일을 읽어 총점과 평균계산하여 score.txt파일 끝에 추가하기
import os.path
f = open("score.txt","r")
n_res=[]
res = f.readlines() #리스트 형식으로 결과를 반환
for i in res:
n_res.append(i.rstrip())
total =0
for i in range(1,len(n_res)):
total +=int(n_res[i])
avg = total/len(n_res)
n_res.append(total)
n_res.append(avg)
print(n_res) //리스트 안에 총점과 평균이 계산되어 넣어진것을 확인 할 수있다.
//계산된 값을 파일에 작성해주어야 함.
f =open("score.txt","a") #append :파일의 현재 내용 끝에 내용 추가
f.write("총점:"+str(total)+"점\n")
f.write("평균:"+str(avg) +"점")
f.close()
(실습 7) 저장한 값을 역순으로 작성하기
import os.path
f = open("things.txt","r")
result=[]
data = f.readlines()
for i in range(len(data)-1, -1, -1) : #range(시작, 끝, 증감치)
a = data[i].rstrip()
result.append(a)
print("리스트에 저장된값 :",data)
print("역순으로 입력 :",result)
f.close()
f = open("rthings.txt","w")
f.write(str(result))
f.close()
//rthing.txt 파일에 결과가 따로 저장됨
'PROGRAMING📚 > Python📑' 카테고리의 다른 글
[Python]Python-Gramma- Print (0) | 2024.11.11 |
---|---|
[파이썬 Python] Gabor Filters(가보르 필터) 이미지 적용하기 (0) | 2023.02.14 |
파이썬(Phython) 랜덤 함수 응용하기 (0) | 2022.04.14 |
파이썬(Phython) 모듈과 패키지 (0) | 2022.04.14 |
파이썬(Phython) 문자열 검사 /변환 / 공백 제거 함수 (0) | 2022.04.14 |
댓글