파일 읽기, 쓰기 (.txt)
텍스트 파일 읽기
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")