[Python] - 파일 읽기, 쓰기
파일 읽기
python에서는 외부파일을 읽어와 쓸수 있도록 설정이 되어 있습니다. 그렇기에 파일에 여러 기능을 정리해놓으면 추후에 그 기능을 쉽게 가져와 쓸 수 있습니다. 그럼 파일 읽는 방법을 코드와 같이 설명드리겠습니다.
1. open 형식
f = open('./resources/test1.csv','r')
이 코드는 상대경로에 있는 resources폴더 안에 있는 test1.csv를 'r'을 통하여 파일을 읽어올 것이라는 것을 알려주는 것이다. 그리고 이 후 코드에서 실질적으로 어떻게 읽어올 것인지 결정된다.
content = f.read()
이 코드는 읽어온 코드를 read()를 통해 파일을 어떻게 읽을지을 결정하는 코드입니다.
read()는 파일 전체의 내용을 하나의 문자열로 읽어오는 메소드 입니다.
read()말고도 어떠한 형식으로 저장할 지 결정하는 메서드 형식을 알아보겠습니다.
1.read() : 파일 전체의 내용을 하나의 문장열로 읽어오는 메소드입니다.
2.readline() : 한번에 하나의 라인을 읽어오는 메소드입니다다.
3.readlines() : 파일 전체를 한라인씩 읽어와서 리스트를 만들어주는 메소드입니다.
readlines()는 개행문자인 "\n" 도 같이 들어가 있기 때문에 이 부분을 제거해주는 comand가 필요할 수도 있습니다.
또한 open함수를 사용하면 마지막에 close를 통해 리소스를 반환해주어야 합니다.
f.close()
전체코드입니다
f = open('./resources/test1.csv','r')
content = f.read()
print(content)
print(dir(f))
f.close()
이번에는 위에 형식보다 훨씬 더 많이 사용하고 간편한 형식을 알아보겠습니다.
2. with open 형식
이 형식은 위에 형식과 다르게 마지막에 따로 close를 안해도 알아서 리소스를 반환해주기 때문에 많이 사용되는 편입니다. 그럼 코드를 보면서 설명하겠습니다.
with open('./resources/test1.csv','r') as f:
이 코드는 위에 코드와 마찬가지로 상대경로에 있는 resources폴더 안에 있는 test1.csv를 'r'을 통하여 파일을 읽어올 것이라는 것을 알려주는 것이다. 뒤에 "as f"는 위에 형식에서 "f =" 이 부분과 같다고 보시면 됩니다. " open('./resources/test1.csv','r')"를 as통해 f로 대체할 것이다라는 의미입니다.
나머지는 위와 동일합니다
마지막으로 메소드를 통해 이미 한번 가져온 파일을 또 다시 메소드를 통해 가져올 수 없습니다.!!
가져오려면 다시 선언을 한 후 가져와야 합니다.
파일 쓰기
이번에는 파일 쓰기입니다. 파일 쓰기는 파일 읽기와 반대로 폴더를 지정하여 그 폴더내의 파일을 만들어 작성하는 것입니다. 그렇기에 파일 쓰기를 통해 외부파일에서도 다른 폴더내의 파일을 만들어 작성하여 손쉽게 파일을 작성할 수 있는 이점이 있습니다. 파일쓰기는 파일읽기와 비슷하지만 write의 약자인 'w'를 사용합니다. 이번에는 거의 사용되지 않은 open이 아니라 with open을 통해 설명하겠습니다.
1. with open 형식
with open("./resources/test1.txt",'w') as f:
이 코드를 보시면 아시겠지만 파일읽기와 거의 동일합니다. resources내의 test1.txt 파일을 만드는 코드입니다. 위와 동일하게 "as f" 를 통해 f로 대체하고
f.write("niceman!\n")
이를 통해 resources내의 test1.txt파일에 niceman이라는 문자열을 입력시키는 코드입니다.
with open("./resources/test1.txt",'w') as f:
f.write("niceman!\n")
전체 코드입니다.
또한 write메소드 말고 자주 사용하는 메소드가 writelines메소드입니다. write와 비슷하지만 writelines는 리스트를 파일로 저장하는 메소드입니다.
with open("./resources/test3.txt",'w') as f:
list = ['kim\n', 'park\n','cho\n']
f.writelines(list)
이 코드는 list_1의 list를 writelines(list_1)를 통해 resources내의 test3.txt를 만들어 저장시키는 코드입니다.
Author And Source
이 문제에 관하여([Python] - 파일 읽기, 쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@xchdtk/Python-파일-읽기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)