-
[Python] 텍스트파일Language/Python 2024. 6. 6. 16:05
파이썬 내부자원 console창이 아닌 외부자원인 텍스트파일에서 다루기.
-파이썬 내장함수 open(),read(),write(),close() 를 이용
open('파일경로','파일모드')
1) 파일경로
C:/pythonTxt/test.txt 처럼 역슬래시가 아닌 슬래시로 변경.
2) 파일모드
- 파일모드는 파일을 어떤목적으로 open할지 정한다.
- 'w' : 쓰기전용 (파일이 있으면 덮어씌움)
- 'a' : 쓰기전용 (파일이 있으면 덧붙임)
- 'x' : 쓰기전용 (파일이 있으면 에러발생)
- 'r' : 읽기전용 (파일이 없으면 에러발생)
1. write()
file = open('C:/pythonTxt/test.txt','w') #파일을 쓰기위해서는 먼저 파일을 열어준다. strCnt = file.write('Hello') print(f'strCnt: {strCnt}') file.close() #외부자원 연결해제
2. read()
file = open('C:/pythonTxt/test.txt','r') str = file.read() print(f'str: {str}') file.close() #외부자원 연결해제
file = open('D:/pythonTxt/aboutPython.txt','r', encoding='UTF8') str = file.read() print(f'str: {str}') file.close() # 읽어온 파일의 텍스트'python' -> '파이썬' 3개 바꾸기 str = str.replace('Python','파이썬', 3) print(f'str: {str}') # 변경한 내용 덮어쓰기 file = open('D:/pythonTxt/aboutPython.txt') file.wirte(str) file.close()
3) with ~ as문
with ~ as문을 이용하면 파일닫기(close) 를 생략할 수 있다.
uri = 'D:/pythonTxt/' # file = open(uri + 'test.txt','r') # str = file.read() # print(f'str: {str}') # file.close() #외부자원 연결해제 with open(uri + 'test.txt','r') as f: print(f.read())
4) writelines()
writelines()는 리스트 또는 튜플 데이터를 파일에 쓰기위한 함수이다.
languages = ['c/c++','java','c#','python','js'] uri = 'D:/pythonTxt/' for item in languages: with open(uri + 'lang.txt','a') as f: f.write(item) f.write('\n')
위 코드를 writelines() 함수 사용해 수정.
languages = ['c/c++','java','c#','python','js'] uri = 'D:/pythonTxt/' with open(uri + 'lang.txt','a') as f: # f.writelines(languages) # 개행을 위해 수정. f.writelines(item + '\n' for item in languages)
* 자료형(딕셔너리,리스트)을 그대로 저장하기 위해선 아래와 같은 형태로도 사용가능.
scoreDic = {'kor':85, 'eng':90, 'mat':92, 'his':82} uri = 'D:/pythonTxt/' with open(uri+'score.txt','a') as f: print(scoreDic,file=f)
5) readlines(),readline()
- readlines() : 파일의 모든 데이터를 읽어서 리스트형태로 반환.
uri = 'D:/pythonTxt/' with open(uri + 'lang.txt','r') as f: langlist = f.readlines() print(f'langlist : {langlist}') print(f'langlist type: {type(langlist)}') >>> langlist : ['c/c++\n', 'java\n', 'c#\n', 'python\n', 'js\n'] langlist type: <class 'list'>
- readline() : 한 행을 읽어서 문자열로 반환
uri = 'D:/pythonTxt/' with open(uri + 'lang.txt','r') as f: langlist = f.readline() print(f'langlist : {langlist}') print(f'langlist type: {type(langlist)}') >>> langlist : c/c++ langlist type: <class 'str'>
'Language > Python' 카테고리의 다른 글
[Python] 예외 (0) 2024.06.04