파이썬의 파일입출력(open,readline,)
#파일의 객체를 생성
#객체 = open('파일경로',모드)
#모드는 w,r,,,
#객체.close()로 닫아줘야 한다.
f= open('test.txt','w')
#파일이 생성되는 경로를 따로 지정하지 않으면
#파이썬 스크립트가 위치한 동일한 경로에 파일을 생성
#기본적인 위치 : 내가 지정한 경로
#파일 입력하는 경우
#write() : 파일에 데이터를 입력하는 함수
#복수의 데이터는 입력할 수 없고, 문자열 데이터만 입력 가능하다.
#기본 자료형들을 저장하고 싶은 경우 pickle모듈
#개행(줄바꿈 포함X)
f.write('NAME\n')
f.write('멍멍이\n') #\n을 통해 줄바꿈이 가능하다.
#문자열 포멧팅 : 문자열 안에 정수를 삽입하고 싶은 경우
#%d(정수), %s(문자열), %f(실수), %c(하나의 문자를 표현)
#문자열 안에 정수를 삽입
#"문자열 안에 포멧"%변수, 데이터
f.close()
#파일 객체를 생성한 뒤에는 반드시 닫아주어야 한다.
f= open('test2.txt','w')
for i in range(1,11):
data = "%dLine\n"%i
f.write(data)
f.close()
#파일을 여러개 생성하는 것도 가능하다.
namelist = ['A','B','C','D']
#파일명 작성 "문자열"
for i in namelist:
f=open('[%s].txt'%i,'w')
name = input('name>>')
age = int(input('age>>'))
gender = input('gender>>')
f.write('이름:%s, 나이:%d, 성별:%s'%(name,age,gender))
#포멧팅을 두개 이상 할 경우에는 콤마 구별
#%(데이터1,데이터2)
#읽기모드
#Readline(): 파일의 문장 한 라인을 읽어들임
#Readlines(): 파일의 모든 라인을 읽어서 각각의 요소를 갖는 리스트 반환
#Read() : 파일의 내용 전체를 문자열로 리턴
#Read(숫자): 데이터를 몇개 가져오라는 의미
#출력 : 저장 텍스트파일
#파이썬 프로그램에서 데이터를 내보낸다.
f=open('test_io.txt','w')
for i in range(1,101):
data = '%d번째 줄\n'%i
f.write(data)
f.close()
#입력 : 파이썬 프로그램으로 데이터를 읽어 들인다.
#읽기 모드인 경우 모드를 생략해도 무방하다.
input1 = open('test_io.txt','r')
"""
for i in range(100):
data = input1.readline()
print(data,end='')
"""
"""
for i in input1.readlines():
print(i)
"""
print(input1.readlines())
f.close()
#스트림 : 데이터들의 연속적인 흐름, 데이터들의 다리
#스트림은 기본적으로 단방향 통신이다. ( 입력 또는 출력)
# pickle 모듈
import pickle
#from pickle import *
#-텍스트 파일로 저장할 때
#-자료형을 파일로 저장(기본자료형,클래스)
#pickle로 데이터를 저장하고 불러올 때 파일
#바이트 형식으로 읽거나 써진다.
#파일명 .bin 사용하는 것이 좋다.
#'wb','rb'
#dump(데이터,파일) : 저장
#load(파일) : 읽기
f=open("byte_file.bin","wb")
pickle.dump('Hello,World',f)
pickle.dump(12345,f)
pickle.dump(3.14,f)
pickle.dump([1,2,3,4,5],f)
pickle.dump({1:'python',2:'java'},f)
f.close()
f= open('byte_file.bin','rb')
#덤프가 저장한 순서대로 로드된다.
d= pickle.load(f)
print(d,type(d))
d= pickle.load(f)
print(d,type(d))
d= pickle.load(f)
print(d,type(d))
d= pickle.load(f)
print(d,type(d))
d= pickle.load(f)
print(d,type(d))
f.close()
#with
#자동적으로 파일을 닫는 역할
#파일의 객체를 닫지 않으면 에러
#저장 X
# with open('파일명경로','모드') as 객체:
# pass #write()
#pickle모듈로 저장
## 실습
#A폴더 안에 텍스트 파일을 저장
#그 안의 내용은 본인 정보 이름 나이
#입출력까지
#Person_test.txt
with open('G:\내 드라이브\Python_Bigdata_AIB\Python_workspace\ddasua_study\Person_text.txt','a') as out:
name = input('name>')
age = int(input('age>'))
out.write("%s"%name)
out.write("%d"%age)
out.write('name:a')
out.write('age:20')
댓글
댓글 쓰기