파이썬 - Text 파일 만들기
- 이번 포스트에서는 python에서 텍스트 파일에 대한 기본적인 사용 방법을 알아볼 것이다.
텍스트 파일 다루기 기본
- 파이썬에서 파일을 다룰 때는 기본 내장함수 open() 함수를 활용한다.
- open(file, mode=’r’, buffering=-1, encoding=None, errors=None, newline=None, closfd=True, opener=None)
- file : 파일 경로
- mode : 파일이 열리는 모드
- ‘r’: 읽기 용으로 열림(기본값)
- ‘w’: 쓰기 위해 열기, 파일을 먼저 자른다.
- ‘x’: 베타적 생성을 위해 열리고, 이미 존재하는 경우 실패
- ‘a’: 쓰기를 위해 열려 있고, 파일의 끝에 추가하는 경우 추가한다.
- ‘b’: 2진 모드(바이너리 모드)
- ‘t’: 텍스트 모드(기본값)
- ‘+’: 업데이트(읽기 및 쓰기)를 위한 디스크 파일 열기
- ‘U’: 유니버설 개행 모드(사용되지 않음)
- buffering: 버퍼링끄기는 0(바이너리모드에서만 동작), 라인모드는 1(텍스트모드에서만 가능), 고정 크기로 보내려면 임의의 바이트수를 1보다 큰 양의 수로 입력
- encoding: 파일을 디코딩하거나 인코딩하기 위해 사용되는 이름. 대부분 utf-8이지만 모든 시스템이 utf-8이라는 보장이 없으므로 명시적으로 하는 것이 좋다.
- 파일 객체는 반드시 열고 작업이 완료되면 반드시 파일을 닫아야 한다.
- 파일을 닫지 않으면 버퍼링되어 있는 데이터는 기록되지 않고 소실될 수 있습니다.
- 파일 객체의 close() 메소드로 파일을 닫는다.
파일 쓰기
- 파일을 작성하기 위해서는 새로운 파일을 open해야 한다.
- open함수는 파이썬의 내장함수이며, ‘파일 이름’과 ‘파일 열기 모드’를 인자 값으로 받은 후 실행된다.
- open(‘파일 이름’, ‘파일 열기 모드’, optional)
- 파일을 쓰기모드로 열 시 해당 파일이 이미 존재할 경우 기존에 작성된 내용이 모두 사라지고 새로 작성된다.
- mode를 작성할 때 r(읽기), w(쓰기), a(추가하기) 세가지 중 하나와 t(텍스트), b(바이너리) 둘중 하나와 반드시 결합해야 하며, 나머지는 optional하게 사용 가능하다.
help 메소드로 file 객체의 여러 사용할 수 있는 메소드를 볼 수 있다.
1
2
3f = open('test.txt', mode='wt', encoding='utf-8')
help(f)생성된 파일에 data를 작성하려면 아래와 같이 코드를 작성한다.
1
2
3
4
5
6
7f = open('text.txt', mode='wt', encoding='utf-8')
f.write('파이썬으로 텍스트 파일을 작성하는 방법에 대해 알아보았습니다.')
f.write('다음 포스트에는 excel 파일에 대해 다뤄볼 것입니다.\n')
f.write('이해가 잘 되었나요?')
# write의 반환은 바이트수가 아닌 문자열 수이다.
f.close()
# 작성이 끝나면 반드시 close() 메소드를 호출해야 한다.
파일 읽기
- 파일 읽을 때 mode는 ‘rt’이다.
- read(글자수)로 파일을 읽는다.
- 파일을 읽고나서 내부 포인터는 마지막으로 읽은 텍스트 위치로 이동된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35'test.txt', mode='rt', encoding='utf-8') r = open(
17) r.read(
'파이썬으로 텍스트 파일을 작성하'
17) r.read(
'는 방법에 대해 알아보았습니다.'
# 다 읽은 후에는 빈 문자 반환
10) r.read(
''
# 다시 포인터를 맨 앞으로 가져가려면 seek(포인터위치) 메소드 사용
0) r.seek(
0
# 파일 내용 전체를 리턴받으려면 read 메소드를 인수 없이 사용
r.read()
'파이썬으로 텍스트 파일을 작성하는 방법에 대해 알아보았습니다.다음 포스트에는 excel파일에 대해 다뤄볼 것입니다.\n이해가 잘 되었나요?'
0) r.seek(
0
# readline()메소드로 line 별로 읽어온다.
r.readline()
'파이썬으로 텍스트 파일을 작성하는 방법에 대해 알아보았습니다.다음 포스트에는 excel파일에 대해 다뤄볼 것입니다.\n'
r.readline()
'이해가 잘 되었나요?'
r.readline()
''
# readlines()메소드는 파일의 라인별로 리스트 형태로 리턴한다.
0) r.seek(
0
r.readlines()
['파이썬으로 텍스트 파일을 작성하는 방법에 대해 알아보았습니다.다음 포스트에는 excel파일에 대해 다뤄볼 것입니다.\n', '이해가 잘되었나요?']
r.close()
파일 추가
mode는 mode=’at’이다.
1
2a = open('test.txt', mode='at', encoding='utf-8')
a.writelines(['이번엔 파일을 추가해보았습니다.', 'writelines를 이용하여 추가하였습니다.'])결과
1
2파이썬으로 텍스트 파일을 작성하는 방법에 대해 알아보았습니다.다음 포스트에는 excel파일에 대해 다뤄볼 것입니다.
이해가 잘되었나요?이번엔 파일을 추가해보았습니다.writelines를 이용하여 추가하였습니다.
Posted