AboutPython

[파이썬] 텍스트파일 쓰기

scone 2022. 5. 5. 21:05

[기본 함수]

  • open(), read(), write(), close() 를 이용한 텍스트 파일 다루기
  • file = open('어느 디렉토리의, 어떤 파일인지 파일 주소', 'w')
    : 파일 생성 또는 존재하는 파일을 연다.
    : 두번째 인수 'w'는 쓰기 모드를 의미한다.
    : 'r' 로 쓸 경우 읽기 모드를 말한다.
  • file.write('쓸 내용')
    파일에 쓸 내용이 적힌다.
    write() 는 쓸 내용에 문자가 몇개나 들어갔는지 그 값을 반환한다.
    ex) write('hello world!') 의 값은 12이다.

 

  • 시행 착오 1. SyntaxError
file = open('C:\Users\Jupiter\Desktop\mygit\LearnInZeroBase\pythonTxt\test.txt','w')
strCnt = file.write('hello world!')
print(f'strCnt : {strCnt}')
file.close()
'''
PS C:\Users\Jupiter\Desktop\mygit\LearnInZeroBase> & C:/Users/Jupiter/AppData/Local/Programs/Python/Python310/python.exe "c:/Users/Jupiter/Desktop/mygit/LearnInZeroBase/파이썬 중급/22_텍스트파일.py"
  File "c:\Users\Jupiter\Desktop\mygit\LearnInZeroBase\파이썬 중급\22_텍스트파일.py", line 1
    file = open('C:\Users\Jupiter\Desktop\mygit\LearnInZeroBase\pythonTxt\test.txt','w')
                                                                                   ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
'''

파일을 불러올 때 / 대신 \로 불러오면, 경로로 표시한 부분이 유니코드로 인식되어 발생하는 오류라고 한다.

따라서 경로를 표시할 때 \가 아니라 /로 표시하면 된다고 한다.

또는 \대신 \\를 표시하면 된다.

 

  • open(), write(), close()
file = open('C:\\Users\\Jupiter\\Desktop\\mygit\\LearnInZeroBase\\pythonTxt\\test.txt','w')
strCnt = file.write('hello world!')
print(f'strCnt : {strCnt}')
file.close()
'''
strCnt : 12
'''

텍스트 파일이 만들어졌다.


[실습] 시스템 시간과 일정을 텍스트 파일에 작성해 보자. 

import time
lt = time.localtime()
dateStr = '[' + str(lt.tm_year) +'년 '+str(lt.tm_mon)+'월 '\
    +str(lt.tm_mday)+'일] '
todaySchedule = input('오늘 일정 : ')
file = open('C:\\Users\\Jupiter\\Desktop\\mygit\\LearnInZeroBase\\pythonTxt\\practice01.txt','w')
file.write(dateStr+todaySchedule)
file.close()
'''
오늘 일정 : 방청소
'''

 

  • time.strftime() 을 쓰면 더 깔끔하게 적을 수 있다고 해서 가지고 왔습니다.
import time
dateStr = '[' + time.strftime('%Y-%m-%d %H:%M:%S %p') + ']'
todaySchedule = input('집안 일정 :')

file=open('C:\\Users\\Jupiter\\Desktop\\mygit\\LearnInZeroBase\\pythonTxt\\practice02.txt', 'w')
file.write(dateStr + todaySchedule)
file.close()

time.strftime()  : string 으로 만드는 time format 이라는 뜻 갖습니다.

%Y : 로칼 타임 년도

%m : 로칼 타임 월 (소문자임에 주의하십시오)

%d : 로칼 타일 일

%H : 로칼 타임 시

%M : 로칼 타임 분

%S : 로칼 타임 초

%p : 로칼 타임 오후인지 오전인지

%I : 로칼 타임 시, 13시, 14시 이렇게 말고 1시 2시 이렇게 나타낼 때

 

더 많은 것들이 있겠지만 생략하고 여기서 마무리하겠습니다.