728x90
파일의 입출력을 위해서는 별도의 모듈을 import하지 않아도 Python 표준 내장 라이브러리를 사용할 수 있습니다.
fp = open(파일명, 모드, 인코딩) 함수를 통해 file을 열고 파일 포인터를 얻어올 수 있습니다.
모드는 아래 세 가지가 있습니다.
모드 | 뜻 |
r | read 읽기모드 |
w | write 쓰기모드 |
a | append 추가모드 |
파일 포인터가 지원하는 함수는 아래와 같습니다.
함수명 | 뜻 | 사용법 (fp = open(...)한 경우) |
write | 파일에 내용을 작성 | fp.write('abc') |
read | 파일의 내용을 읽어옴 | a = fp.read() |
readline | ||
readlines | ||
seek | x번째 위치로 포인터를 옮김 | fp.seek(5) |
tell | 현재 포인터의 위치를 알려줌 | fp.tell() |
close | 파일 포인터를 닫음 | fp.close() |
아래와 같이 사용할 수 있습니다.
fpw = open("text.txt", "w") #write mode로 file open
print(fpw.tell()) #현재 포인터 위치 0
fpw.write("Hello World")
print(fpw.tell()) #현재 포인터 위치 11
print(fpw.seek(5)) #포인터 위치를 5로 옮김
print(fpw.tell()) #현재 포인터 위치 5
fpw.write("modified") #Hellomodified 로 내용이 변경됨
fpw.close() #포인터 close
fpr = open("text.txt", "r")
a = fpr.read()
print(a)
fpr.close()
fpa = open("text.txt", "a") #append mode로 file open
print(fpa.tell()) #현재 포인터 위치 13
fpa.write("\nGood night") #Hellomodified\nGood night 로 내용이 변경됨
print(fpa.tell()) #현재 포인터 ㅜ
fpa.close()
fpr = open("text.txt", "r")
a = fpr.read()
b = fpr.read(5) #위에서 파일을 통째로 다 읽어갔기 때문에 그 뒤로는 빈 내용만 읽어옴
print(a)
print(b)
fpr.close()
fpr2 = open("text.txt", "r")
c = fpr2.read(5) #5byte만 읽어옴
print(c) #Hello 만 찍힘
fpr2.close()
read() 함수는 파일의 내용을 통째로 읽어옵니다.
이를 한 줄씩 읽기 위해서는 아래와 같이 사용할 수 있습니다.
fpw = open("text.txt", "w")
fpw.write("Hello World\nHello World2\nHello World3")
fpw.close()
fpr = open("text.txt", "r")
a = fpr.readline() #한 줄만 읽어옵니다.
print(a)
b = fpr.readline() #b에서 읽어온 다음 줄을 읽어옵니다.
print(b)
fpr.close()
fpr2 = open("text.txt", "r")
c = fpr2.readlines() #파일의 모든 내용을 읽어서 list를 구성합니다.
print(c)
print(c[1])
fpr.close()
fpr3 = open("text.txt", "r")
for line in fpr3: #read하지 않고 포인터를 그대로 사용
print(line)
fpr3.close()
한 글자씩 읽어오기 위한 방법은 아래와 같습니다.
fpw = open("text.txt", "w")
fpw.write("Hello World\nHello World2\nHello World3")
fpw.close()
fpr = open("text.txt", "r")
a = fpr.read()
for character in a:
print(character)
fpr.close()
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python 표준 라이브러리 (디렉토리(폴더) -directory(folder)-, os, glob) (0) | 2021.03.01 |
---|---|
PyCharm의 Python console(파이썬 콘솔) 한글 깨짐 문제 해결 (0) | 2021.03.01 |
Python 패키지 (Package)와 __init__.py (0) | 2021.02.28 |
Python 모듈, 라이브러리, 프레임워크 (module, library, framework) (0) | 2021.02.28 |
Python 함수 (function) -def- (0) | 2021.02.27 |