파이썬에서 파일처리하기

이한영·2021년 11월 10일

파이썬

목록 보기
3/3
post-thumbnail

파이썬 파일처리

자바와 달리 파일을 열었으면(open) 반드시 닫아야(close)한다.

파일을 열때는 '읽기'를 할것인지? 아니면 '쓰기'를 할것인지?를 지정해야한다.
이럴 때 필요한 mode가 있다.

'w' : write (쓰기)
'r' : read (읽기)
'a' : add(추가)
'rb' : read바이너리 (읽기)

파일읽기

#파일열기
fs = open("FileTest1.py", "r", encoding="UTF-8")

#한줄 단위로 읽기를 하지만 파일에 몇줄이 있는지 모르므로
#무한반복으로 돌려야 한다.

#무한반복시작
while True:
    str = fs.readline()
    if str != "":
        #여기서 end=""이렇게 하는 이유는
        #print가 엔터값까지 다가져오기 때문에 제거를 해줘야한다,
        print(str, end="")#enter값은 공백처리해주세요~
    else:
        break
        
#파일닫기
fs.close

파일쓰기

#파일열기
fs = open("file_write.txt", "w", encoding="UTF-8")

#쓰기
fs.write("안녕하세요? \n Papago입니다.")

#파일닫기
fs.close()

open을 할때 파일이 현재 소스파일의 위치에 생성이 된다.

없다면 생성이 되고 있다면 원래 있던 파일이 사라지고 새로실행한 파일이 생성된다.

open에 첫번째 인자로 경로를 정확한경로만 준다면 원하는 위치에 생성이 된다! (ex: c:/program file/java/hello.txt)

파일추가

#파일열기
fs = open("file_write.txt", "a", encoding="UTF-8")

#쓰기
fs.write("\n안녕하세요?추가된Papago입니다.")

#파일닫기
fs.close()

write와 똑같다 모드만 a로 바꿔주면 된다.

바이너리기반의 파일처리

바이너리기반은 이진법으로 이루어저있는 형식이기 때문에

따로 인코딩을 지정해주지 않아도 된다.

#파일열기
fs = open("file_write.txt", "rb")

content = fs.read()

#파일닫기
fs.close()

print(content)#바이너리 형식의 데이터 출력
print("**************원래대로 표현하려면 decode***************")

str = content.decode("UTF-8")
print(str)

편법

# fs= open('file_write.txt','r')와 같다.
with open('file_write.txt','r', encoding="UTF-8") as fs: 
    #내용읽기
    content = fs.read() 
# with로 인해 자동으로 닫기가 이루어지므로 닫기는 생략해도 된다.
print(content)

이렇게 짧게도 읽어들이는게 가능한 편법이 존재한다!!!

profile
동작구 사망연산자

0개의 댓글