[Python] 파이썬의 파일입출력(open,readline,)

파이썬의 파일입출력(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')




댓글