Python

Python – 파일 관리 (+CSV, with 문법)

  • 용도
    • 주로 2가지 용도로 많이 사용됩니다
    • 파일의 데이터를 가져와서 사용하기 (가져오기)
    • 추출한 데이터를 파일형태로 저장하기 (내보내기)
  • 파일 열기 모드
file = open("파일경로", "모드", encoding="utf-8")
Character Meaning
r open for reading (default)
w open for writing, truncating the file first
x create a new file and open it for writing
a open for writing, appending to the end of the file if it exists
b binary mode
t text mode (default)
+ open a disk file for updating (reading and writing)
U universal newline mode (deprecated)
파일을 열 때 행할 행위에 적합한 모드를 지정해줘야합니다
  • 파일 닫기
# 작업이 완료되면 close 함수를 통해 생성된 파일 객체를 닫아줘야합니다
# 안 닫아도 진행은 되지만 닫아주는게 오류방지에 더욱 도움이 됩니다
# with 구문 사용시 자동 close가 가능합니다
file.close()
  • 파일 덮어쓰기
file = open("파일경로", "w", encoding="utf-8")
file.write("abc 에이비씨\n")
file.close()
  • 파일 이어쓰기
file = open("파일경로", "a", encoding="utf-8")
file.write("efg 이에프지")
file.close()
  • 파일 읽기
file = open("파일경로", "r", encoding="utf-8")

# 전체 데이터 읽기
data = file.read()
print(data)
file.close()

# 줄단위 데이터 읽기
while True:
    data = file.readline()
    print(data, end="")
    if data == "": break
  • with 구문 사용
    • __enter__ 와 __exit__ 특수메소드를 가진 객체에 접근하게 되면 with 구문을 사용할 수 있음
    • with 구문은 Transection이 필요한 객체에 쓰입니다. 예를 들어 파일에서 누군가 작업을 한다면 다른 누군가는 작업을 할 수 없습니다. 해당 사용자가 사용을 중단하고 close 하지 않는다면요. with 구문은 이러한 과정을 편리하게 해줍니다. with 구문 내에서 작업 후 에러가 발생하든 안 하든 안전하게 그리고 자동으로 close 적용을 해줍니다.
# 예시1
with open("파일경로", "r", encoding="utf-8") as file:
    data = file.read()
    print(data)

# 예시2
with client.session_transaction() as session:
    print(session)
  • 추가) 파일 삭제, 디렉터리 삭제
import os

# 파일 삭제
os.remove("파일경로")

# 디렉터리 삭제
os.removedirs("파일경로")
  • csv 파일 쓰기
import csv
data = [
    ["이름", "기수", "번호"],
    ["일번", "1", "1"],
    ["이번", "1", "2"],
    ["삼번", "1", "3"],
    ["사번은 개인주의야", "1", "4"],
]

# window의 경우 newline이 자동생성됨
file = open("파일경로", "w", newline="", encoding="utf-8")
writer = csv.writer(file)

for row in data:
    writer.writerow(row)

file.close()
  • csv 파일 읽기
import csv

file = open("파일경로", "r", newline="", encoding="utf-8")
reader = csv.reader(file)
for row_data in reader:
    print(row_data)
file.close()

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.