>  기사  >  백엔드 개발  >  Python의 파일 처리 소개

Python의 파일 처리 소개

Patricia Arquette
Patricia Arquette원래의
2024-10-19 22:17:01790검색

Introduction to File Handling in Python

파일 처리는 Python 작업에서 가장 중요한 측면 중 하나입니다. 텍스트 문서를 읽거나, 로그를 작성하거나, CSV 파일을 처리하거나, 데이터를 저장하는 경우 파일 작업 방법을 이해하는 것이 중요합니다. 다행스럽게도 Python에는 땀을 흘리지 않고도 파일을 만들고, 열고, 읽고, 쓰고, 조작할 수 있는 내장 기능이 있어 쉽게 사용할 수 있습니다.

이 기사에서는 파일 열기부터 CSV 및 JSON과 같은 일반적인 파일 형식 처리에 이르기까지 모든 내용을 다루면서 Python의 파일 처리에 대한 기본 사항을 자세히 살펴보겠습니다. 또한 대용량 파일을 효율적으로 작업하고 파일을 안전하게 처리하는 방법에 대한 팁도 공유할 것입니다. 결국에는 Python을 사용하여 프로젝트의 파일을 관리하는 데 자신감을 갖게 될 것입니다.

연재 내용:

  1. 파일 열기 및 닫기
  2. 파일에서 읽기
  3. 파일에 쓰기
  4. 바이너리 파일 처리
  5. 예외 처리
  6. 파일 작업에 os 및 pathlib 사용
  7. CSV 및 JSON 파일 작업
  8. 효율적인 파일 처리 요령
  9. 파일 인코딩 및 교차 플랫폼 고려 사항

1. 파일 열기 및 닫기

파일 작업을 할 때 가장 먼저 해야 할 일은 파일을 여는 것입니다. Python에서는 파일 이름과 파일을 열 모드(예: "r" 읽기, "w" 쓰기 또는 "a" 추가)라는 두 가지 주요 인수를 사용하는 open() 함수를 사용하여 이 작업을 수행합니다. ). 작업이 끝나면 파일을 닫아 리소스를 확보하는 것이 중요합니다.

예:

# Open a file in write mode
file = open("example.txt", "w")

# Write some content to the file
file.write("Hello, World!")

# Always close the file after you're done to free up system resources
file.close()

설명:

open("example.txt", "w"): 쓰기 모드에서 example.txt 파일을 엽니다. 파일이 존재하지 않으면 Python이 파일을 생성합니다. 존재하는 경우 덮어쓰게 됩니다.
file.write("Hello, World!"): "Hello, World!" 문자열을 씁니다. 파일에.
file.close(): 파일을 닫습니다. 이는 모든 변경 사항이 저장되고 리소스가 해제되는지 확인하는 데 필요합니다.
더 나은 방법: with 문 사용

with 문은 작업이 완료되면 자동으로 파일을 닫으므로 명시적으로 close()를 호출할 필요가 없습니다.

with open("example.txt", "w") as file:
    file.write("Hello, World!")
# The file is automatically closed here, even if an error occurs

설명:

with 문은 블록 내부에서 오류가 발생하더라도 코드 블록이 실행된 후 파일이 자동으로 닫히도록 보장합니다. 이를 통해 우발적인 데이터 손실이나 리소스 유출을 방지할 수 있습니다.

2. 파일에서 읽기

Python에서는 전체 파일을 한 번에 읽을지 아니면 한 줄씩 처리할지에 따라 여러 가지 방법으로 파일을 읽을 수 있습니다.

예(전체 파일 읽기):

with open("example.txt", "r") as file:
    content = file.read()  # Read the entire file at once
    print(content)

설명:

open("example.txt", "r"): 파일을 읽기 모드("r")로 엽니다.
file.read(): 파일의 전체 내용을 변수 내용으로 읽어옵니다. 이는 작은 파일에는 적합하지만 큰 파일에는 비효율적일 수 있습니다.
print(content): 콘텐츠를 콘솔에 출력합니다.

예(한 줄씩 효율적으로 읽기):

# Open a file in write mode
file = open("example.txt", "w")

# Write some content to the file
file.write("Hello, World!")

# Always close the file after you're done to free up system resources
file.close()

설명:

파일의 for 라인 루프는 파일을 한 줄씩 읽으므로 대용량 파일의 경우 메모리 효율적입니다.
line.strip(): 인쇄하기 전에 각 줄에서 선행/후행 공백 또는 개행 문자를 제거합니다.

3. 파일에 쓰기

파일에 데이터를 쓰려면 "w" 또는 "a" 모드를 사용합니다. "w" 모드는 파일을 덮어쓰고 "a" 모드는 기존 콘텐츠에 추가합니다.

예(파일에 쓰기):

with open("example.txt", "w") as file:
    file.write("Hello, World!")
# The file is automatically closed here, even if an error occurs

설명:

open("example.txt", "w"): 쓰기 모드로 파일을 엽니다. 파일이 없으면 파일을 만들고, 있으면 내용을 지웁니다.
file.write(): 문자열을 파일에 씁니다. 필요한 경우 새 줄에 n을 포함할 수 있습니다.

예(파일에 추가):

with open("example.txt", "r") as file:
    content = file.read()  # Read the entire file at once
    print(content)

설명:

open("example.txt", "a"): 파일을 추가 모드("a")로 엽니다. 즉, 기존 콘텐츠를 삭제하지 않고 파일 끝에 새 데이터가 추가됩니다.
file.write("nThis will be added at the end."): 파일 끝에 새 줄을 쓰고, 새 줄로 이동하려면 n을 추가합니다.

4. 바이너리 파일 처리

이미지, 비디오 또는 기타 바이너리 데이터와 같은 텍스트가 아닌 파일로 작업할 때는 바이너리 모드(읽기의 경우 "rb", 쓰기의 경우 "wb")를 사용해야 합니다.

예(바이너리 파일 읽기):

with open("example.txt", "r") as file:
    for line in file:  # Loop through each line in the file
        print(line.strip())  # Remove trailing newline characters and print the line

설명:

open("image.jpg", "rb"): 바이너리 데이터에 필요한 읽기-바이너리 모드("rb")로 파일을 엽니다.
Binary_file.read(): 파일의 전체 바이너리 내용을 읽습니다.
바이너리_데이터[:10]: 파일의 처음 10바이트를 표시합니다. 이는 바이너리 데이터를 청크로 미리 보거나 처리하는 데 유용합니다.

5. 예외 처리

파일 작업 시 파일 누락, 권한 문제 등의 오류가 발생할 수 있습니다. Try-Exception 블록을 사용하면 이러한 오류를 적절하게 처리할 수 있습니다.

예:

with open("example.txt", "w") as file:
    file.write("Writing a new line of text.")

설명:

try 블록은 존재하지 않을 수 있는 파일을 열고 읽으려고 시도합니다.
파일을 찾을 수 없는 경우, FileNotFoundError 제외 블록은 오류를 포착하고 프로그램을 충돌시키는 대신 사용자에게 친숙한 메시지를 인쇄합니다.

6. 파일 작업에 os 및 pathlib 사용

os 및 pathlib 모듈은 단순히 파일을 열고 닫는 것 이상으로 파일 시스템과 상호 작용하는 방법을 제공합니다. 파일 존재 여부를 확인하거나, 이름을 바꾸거나, 제거할 수 있습니다.

예(os 모듈):

# Open a file in write mode
file = open("example.txt", "w")

# Write some content to the file
file.write("Hello, World!")

# Always close the file after you're done to free up system resources
file.close()

설명:

with open("example.txt", "w") as file:
    file.write("Hello, World!")
# The file is automatically closed here, even if an error occurs

예(pathlib 모듈):

with open("example.txt", "r") as file:
    content = file.read()  # Read the entire file at once
    print(content)

설명:

Path("new_example.txt"): 파일을 가리키는 Path 개체를 생성합니다.
file_path.exists(): 파일이 존재하는지 확인합니다.
file_path.unlink(): 파일을 삭제합니다.

7. CSV 및 JSON 파일 작업

Python의 csv 및 json 모듈을 사용하면 CSV(쉼표로 구분된 값) 및 JSON(JavaScript Object Notation)과 같은 구조화된 데이터 형식으로 쉽게 작업할 수 있습니다.

CSV 파일

csv 모듈을 사용하면 행과 열로 구성된 데이터를 처리할 수 있습니다.

예(CSV 작성):

with open("example.txt", "r") as file:
    for line in file:  # Loop through each line in the file
        print(line.strip())  # Remove trailing newline characters and print the line

설명:

csv.writer(file): CSV 파일에 행을 쓰기 위한 작성기 개체를 생성합니다.
writer.writerow(): 각 데이터 행을 파일에 씁니다.

예(CSV 읽기):

with open("example.txt", "w") as file:
    file.write("Writing a new line of text.")

설명:

위 코드 블록에서 csv.reader(file): CSV 파일의 각 행을 반복하는 판독기 개체를 생성합니다.
for row in reader 루프는 각 행을 읽고 인쇄합니다.
JSON 파일
json 모듈은 키-값 쌍으로 구조화된 데이터를 읽고 쓰는 데 적합합니다.

예(JSON 작성):

with open("example.txt", "a") as file:
    file.write("\nThis will be appended at the end.")

설명:

json.dump(data, file): 사전 데이터를 JSON으로 파일에 씁니다.

예(JSON 읽기):

with open("image.jpg", "rb") as binary_file:
    binary_data = binary_file.read()  # Read the entire file in binary mode
    print(binary_data[:10])  # Print first 10 bytes for preview

설명:

json.load(file): JSON 파일을 읽고 다시 Python 사전으로 변환합니다.

8. 효율적인 파일 처리 요령

대용량 파일을 처리할 때는 파일 전체를 메모리에 로드하는 것보다 파일을 덩어리로 처리하는 것이 더 효율적입니다.

예(청크로 읽기):

try:
    with open("nonexistentfile.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("The file does not exist!")

결론

Python에서 파일 작업은 간단하면서도 강력합니다. 텍스트 파일을 처리하든, 데이터를 저장하든, 대규모 데이터 세트를 처리하든 파일 작업을 마스터하면 코딩 생활이 더 쉬워집니다. 이 기사에서 다루는 팁과 기술을 사용하면 보다 효율적이고 안정적이며 확장 가능한 Python 프로그램을 작성하는 데 도움이 될 것입니다.

읽어주셔서 감사합니다...

위 내용은 Python의 파일 처리 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.