파이썬/파이썬 기초 코딩

파일 읽기, 쓰기 (.txt)

토마토농장농장 2021. 12. 21. 09:34

텍스트 파일 읽기

 

 

f=open('D:\\txttest.txt')

f 변수를 경로의 파일로 명명한다.

이 때, 파일 속성에서 경로를 확인하면 D:\ ~ 라고 나오는데, 

파이썬 경로에서는 역슬래시 2개를 사용해야 하므로 역슬래시 하나 더 추가해준다. 

 

 

 

lines=f.readlines()

lines 라는 리스트에 f파일의 각 행을 저장한다. 

lines[0]은 f파일의 첫줄 내용이 저장된다. 

 

>>> for line in lines: print(line, end="")

 

end="" :  기본적으로 print 시 줄바꿈을 하는데, 메모장에도 /n으로 줄바꿈을 하니 두줄씩 띄어서 출력되는 것을 방지..

 

 

>>> for line in lines: nline = line.split('\n')[0] print(nline)

 

split 함수를 이용해서 \n마다 떼어서 nline이라는 새로운 리스트의 0번째 원소에 저장. 

line.split('\n') 이라고만 했으면 각 줄마다 0,1,2,.. 번째 원소에 저장됨

 

 

특정 문자열을 포함하고 있는지 찾기

 

lines 의 원소, 각 줄을 i라고 할 때, i[:] 는 그 줄의 글자를 가리킴 

for i in lines :
    if "BO_ " == i[:4]: # 각 줄의 0~3번째 글자가 BO_로 시작 시

 

 

 

 

텍스트 파일 쓰기

 

f=open('D:\\txttest.txt', 'wt')

 

읽기와 달리 경로 뒤, 두번째 인자에 'wt' or 'w'를 입력하면 해당 파일을 생성할 수 있다. 

기존에 있던 파일을  wt를 붙이고 불러와서 닫으면 수정이 아니라 내용이 다 지워지고 새로운 내용을 작성하므로 조심해야한다.. 

 

>>> f.write('삼성전자\n')

5

>>> f.write('SK하이닉스\n')

7

>>> f.close()

 

write 시 나오는 숫자는 그 행에 입력된 문자 수 (띄어쓰기인 \n도 포함)

 

f.write() 안에는 숫자는 입력이 안되고 "%d" %i 형태로 입력해야 함. 

 

for i in range (1,11):
    f.write("%d \n" %i)

 

파일에 내용 추가하기

 

기존 내용을 유지하면서 내용을 추가할 때는 'a' 를 붙인다. 

 


f=open('D:\\02. CANoe\\CANoe_dbc\\SX2HEV\\새 폴더\\HCAN.txt','a')

f.write("HI")

f.close()

맨 마지막 줄에 "HI" 가 들어간다. 

 

 

 

파일 자동 닫기

'with' 문을 이용하면 f.close() 없이 명령어를 실행하고 알아서 파일을 닫아준다. 

with open("foo.txt", "w") as f:
    f.write("Life is too short, you need python")