Python에서 리스트를 파일에 저장하고 읽어오는 구체적인 방법

Python은 데이터 처리에서 매우 유연한 언어로, 리스트 데이터를 파일에 저장하고 다시 읽어오는 작업이 자주 수행됩니다. 본 기사에서는 Python을 사용하여 리스트를 텍스트 파일이나 CSV 파일에 저장하고 읽어오는 구체적인 방법을 상세한 코드 예제와 함께 설명합니다.

목차

Python에서 리스트를 파일에 저장하는 방법

Python에서 리스트를 파일에 저장하는 것은 데이터의 보관 및 공유에 있어 매우 유용합니다. 이 섹션에서는 리스트를 텍스트 파일에 저장하는 절차를 설명합니다.

텍스트 파일에 저장하기

리스트를 텍스트 파일에 저장하기 위해서는, Python의 내장 함수인 open을 사용합니다. open 함수는 파일을 여는 함수이며, w 모드를 지정하면 쓰기 모드로 파일을 열 수 있습니다.

쓰기 모드로 파일 열기

with open('output.txt', 'w') as file:
    for item in my_list:
        file.write(f"{item}\n")

위의 코드에서는 with open 구문을 사용하여 파일을 엽니다. output.txt라는 파일을 w 모드(쓰기 모드)로 열고, 리스트의 각 요소를 한 줄씩 파일에 씁니다. file.write 함수를 사용하여 리스트의 각 요소를 파일에 씁니다.

파일 닫기

with open 구문을 사용하면 파일 작업이 종료된 후 자동으로 파일이 닫힙니다. 이를 통해 파일을 명시적으로 닫을 필요가 없어 안전하게 파일 작업을 수행할 수 있습니다.

리스트를 파일에 저장하는 코드 예제

구체적인 코드 예제를 통해 Python에서 리스트를 파일에 저장하는 방법을 설명합니다.

리스트의 정의와 초기화

먼저, 저장할 리스트를 정의합니다. 여기서는 예시로 과일 이름을 리스트에 저장합니다.

my_list = ['Apple', 'Banana', 'Cherry', 'Date', 'Elderberry']

파일에 리스트를 저장하는 코드 예제

다음으로, 리스트의 내용을 텍스트 파일에 저장합니다.

with open('fruits.txt', 'w') as file:
    for item in my_list:
        file.write(f"{item}\n")

코드 설명

  • with open('fruits.txt', 'w') as file:
    'fruits.txt'라는 이름의 파일을 생성하고, 쓰기 모드('w')로 엽니다. with 구문을 사용하여 파일 닫기 작업이 자동으로 수행됩니다.
  • for item in my_list:
    리스트 my_list의 각 요소에 대해 루프를 실행합니다.
  • file.write(f"{item}\n")
    각 리스트 요소를 한 줄씩 파일에 씁니다. f"{item}\n" 형식으로 작성하여 각 요소마다 줄바꿈을 추가합니다.

결과 확인

위의 코드를 실행하면, fruits.txt라는 파일이 생성되고, 리스트의 각 요소가 한 줄씩 저장됩니다. 파일의 내용은 다음과 같습니다.

Apple
Banana
Cherry
Date
Elderberry

Python에서 리스트를 파일에서 읽어오는 방법

Python에서 리스트를 파일에서 읽어오는 것은 데이터의 재사용이나 분석에서 중요합니다. 이 섹션에서는 텍스트 파일에서 리스트를 읽어오는 절차를 설명합니다.

텍스트 파일에서 읽어오기

리스트를 텍스트 파일에서 읽어오기 위해서는, Python의 내장 함수인 open을 사용합니다. open 함수는 파일을 여는 함수이며, r 모드를 지정하면 읽기 모드로 파일을 열 수 있습니다.

읽기 모드로 파일 열기

with open('fruits.txt', 'r') as file:
    my_list = [line.strip() for line in file]

위의 코드에서는 with open 구문을 사용하여 파일을 엽니다. fruits.txt라는 파일을 r 모드(읽기 모드)로 열고, 파일의 각 줄을 리스트로 읽어옵니다.

리스트로 변환하기

  • with open('fruits.txt', 'r') as file:
    'fruits.txt'라는 파일을 읽기 모드('r')로 엽니다. with 구문을 사용하여 파일 닫기 작업이 자동으로 수행됩니다.
  • my_list = [line.strip() for line in file]
    파일의 각 줄을 리스트 my_list에 읽어옵니다. line.strip()을 사용하여 각 줄 끝의 줄바꿈 문자를 제거합니다.

결과 확인

위의 코드를 실행하면, fruits.txt에서 읽어온 데이터가 리스트 my_list에 저장됩니다. 파일의 내용이 다음과 같은 리스트로 변환됩니다.

my_list = ['Apple', 'Banana', 'Cherry', 'Date', 'Elderberry']

리스트를 파일에서 읽어오는 코드 예제

구체적인 코드 예제를 통해, Python에서 리스트를 파일에서 읽어오는 방법을 설명합니다.

파일에서 리스트를 읽어오는 코드 예제

다음 코드는 텍스트 파일에서 리스트를 읽어오는 방법을 보여줍니다.

with open('fruits.txt', 'r') as file:
    my_list = [line.strip() for line in file]

코드 설명

  • with open('fruits.txt', 'r') as file:
    'fruits.txt'라는 파일을 읽기 모드('r')로 엽니다. with 구문을 사용하여 파일 작업이 종료된 후 자동으로 파일이 닫힙니다.
  • my_list = [line.strip() for line in file]
    파일의 각 줄을 리스트 my_list에 읽어옵니다. 리스트 내포 구문을 사용하여 파일의 각 줄을 순차적으로 처리하고, line.strip()을 사용하여 각 줄 끝의 줄바꿈 문자를 제거합니다.

실제 사용 예

다음은 실제 파일 내용과 읽어온 리스트의 내용을 보여줍니다.

fruits.txt의 내용:

Apple
Banana
Cherry
Date
Elderberry

읽어온 리스트:

my_list = ['Apple', 'Banana', 'Cherry', 'Date', 'Elderberry']

에러 핸들링

파일이 존재하지 않거나, 읽기에 실패할 경우를 대비하여 에러 핸들링을 추가하는 것도 중요합니다. 다음 예제에서는 tryexcept를 사용하여 에러 처리를 수행하고 있습니다.

try:
    with open('fruits.txt', 'r') as file:
        my_list = [line.strip() for line in file]
except FileNotFoundError:
    print("파일을 찾을 수 없습니다.")
except IOError:
    print("파일을 읽는 중 오류가 발생했습니다.")

응용 예제: CSV 파일 다루기

리스트를 CSV 파일에 저장하고 읽어오는 방법을 설명합니다. CSV 파일은 데이터의 저장과 공유에 매우 편리하며, 널리 사용됩니다.

CSV 파일에 저장하기

Python의 csv 모듈을 사용하여 리스트를 CSV 파일에 저장합니다.

리스트의 정의와 초기화

먼저, CSV 파일에 저장할 리스트를 정의합니다. 여기서는 여러 과일과 그 가격을 리스트에 저장합니다.

fruits = [
    ['Apple', 100],
    ['Banana', 50],
    ['Cherry', 200],
    ['Date', 150],
    ['Elderberry', 300]
]

CSV 파일에 저장하는 코드 예제

다음으로, 리스트의 내용을 CSV 파일에 저장합니다.

import csv

with open('fruits.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['Fruit', 'Price'])
    writer.writerows(fruits)

코드 설명

  • import csv
    Python의 csv 모듈을 임포트합니다.
  • with open('fruits.csv', 'w', newline='') as file:
    'fruits.csv'라는 이름의 CSV 파일을 생성하고 쓰기 모드('w')로 엽니다. newline=''는 행 간에 불필요한 빈 행이 삽입되는 것을 방지합니다.
  • writer = csv.writer(file)
    CSV 파일에 쓰기 작업을 수행할 writer 객체를 생성합니다.
  • writer.writerow(['Fruit', 'Price'])
    헤더 행을 작성합니다.
  • writer.writerows(fruits)
    리스트 fruits의 각 요소를 CSV 파일에 씁니다.

CSV 파일에서 읽어오기

다음으로, CSV 파일에서 리스트를 읽어옵니다.

import csv

with open('fruits.csv', 'r') as file:
    reader = csv.reader(file)
    header = next(reader)  # 헤더 행을 건너뜁니다
    fruits = [row for row in reader]

코드 설명

  • import csv
    Python의 csv 모듈을 임포트합니다.
  • with open('fruits.csv', 'r') as file:
    'fruits.csv'라는 CSV 파일을 읽기 모드('r')로 엽니다.
  • reader = csv.reader(file)
    CSV 파일을 읽기 위한 reader 객체를 생성합니다.
  • header = next(reader)
    헤더 행을 건너뜁니다.
  • fruits = [row for row in reader]
    파일의 각 줄을 리스트 fruits에 저장합니다.

CSV 파일 작업의 코드 예제

구체적인 코드 예제를 통해, Python에서 리스트를 CSV 파일에 저장하고 읽어오는 방법을 설명합니다.

CSV 파일에 저장하는 코드 예제

다음 코드는 리스트의 내용을 CSV 파일에 저장하는 방법을 보여줍니다.

import csv

# 저장할 데이터 리스트
fruits = [
    ['Apple', 100],
    ['Banana', 50],
    ['Cherry', 200],
    ['Date', 150],
    ['Elderberry', 300]
]

# CSV 파일에 저장
with open('fruits.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    # 헤더 행 작성
    writer.writerow(['Fruit', 'Price'])
    # 데이터 행 작성
    writer.writerows(fruits)

코드 설명

  • import csv
    Python의 csv 모듈을 임포트합니다.
  • fruits
    여러 과일과 그 가격을 저장한 리스트를 정의합니다.
  • with open('fruits.csv', 'w', newline='') as file:
    'fruits.csv'라는 이름의 CSV 파일을 생성하고 쓰기 모드('w')로 엽니다. newline=''는 행 간에 불필요한 빈 행이 삽입되는 것을 방지합니다.
  • writer = csv.writer(file)
    CSV 파일에 쓰기 작업을 수행할 writer 객체를 생성합니다.
  • writer.writerow(['Fruit', 'Price'])
    헤더 행으로 'Fruit''Price'를 작성합니다.
  • writer.writerows(fruits)
    리스트 fruits의 각 요소를 데이터 행으로 CSV 파일에 작성합니다.

CSV 파일에서 읽어오는 코드 예제

다음으로, CSV 파일에서 리스트를 읽어오는 방법을 보여줍니다.

import csv

# CSV 파일에서 데이터 읽어오기
with open('fruits.csv', 'r') as file:
    reader = csv.reader(file)
    # 헤더 행을 건너뜁니다
    header = next(reader)
    # 파일의 각 줄을 리스트에 저장합니다
    fruits = [row for row in reader]

코드 설명

  • import csv
    Python의 csv 모듈을 임포트합니다.
  • with open('fruits.csv', 'r') as file:
    'fruits.csv'라는 CSV 파일을 읽기 모드('r')로 엽니다.
  • reader = csv.reader(file)
    CSV 파일을 읽기 위한 reader 객체를 생성합니다.
  • header = next(reader)
    헤더 행을 건너뜁니다.
  • fruits = [row for row in reader]
    파일의 각 줄을 리스트 fruits에 저장합니다.

결과 확인

위의 코드를 실행하면, 다음과 같은 리스트가 얻어집니다.

fruits = [
    ['Apple', 100],
    ['Banana', 50],
    ['Cherry', 200],
    ['Date', 150],
    ['Elderberry', 300]
]

연습 문제

Python에서 리스트를 파일에 저장하고 읽어오는 작업을 이해하기 위한 연습 문제를 제시합니다. 다음 문제를 해결하면서 실무적인 스킬을 습득할 수 있습니다.

연습 문제 1: 텍스트 파일에 저장하고 읽어오기

다음 리스트를 vegetables.txt라는 텍스트 파일에 저장하고, 다시 읽어와서 리스트로 출력하세요.

vegetables = ['Carrot', 'Potato', 'Cabbage', 'Broccoli', 'Spinach']

기대 결과

  • vegetables.txt 파일에 각 채소 이름이 한 줄씩 저장된다.
  • 파일에서 읽어온 후, 원래 리스트 vegetables와 동일한 내용의 리스트를 얻을 수 있다.

연습 문제 2: CSV 파일에 저장하고 읽어오기

다음 리스트를 employees.csv라는 CSV 파일에 저장하고, 다시 읽어와서 리스트로 출력하세요.

employees = [
    ['John Doe', 'Manager', 50000],
    ['Jane Smith', 'Developer', 60000],
    ['Emily Davis', 'Designer', 55000]
]

기대 결과

  • employees.csv 파일에 각 직원의 데이터가 한 행씩 저장된다.
  • 파일에서 읽어온 후, 원래 리스트 employees와 동일한 내용의 리스트를 얻을 수 있다.

연습 문제 3: 데이터 가공 및 재저장

students.txt라는 파일에 다음 학생 이름과 점수가 저장되어 있습니다. 이 파일을 읽어온 뒤, 모든 학생의 점수를 10점 증가시켜 새로운 파일 updated_students.txt에 저장하세요.

students.txt의 내용:

Alice, 80
Bob, 70
Charlie, 90
Diana, 85
Edward, 60

기대 결과

  • updated_students.txt 파일에 점수가 10점 증가된 데이터가 저장된다.

updated_students.txt의 내용:

Alice, 90
Bob, 80
Charlie, 100
Diana, 95
Edward, 70

정리

Python에서 리스트를 파일에 저장하고, 읽어오는 구체적인 방법에 대해 설명했습니다. 리스트를 텍스트 파일이나 CSV 파일에 저장함으로써 데이터의 영구적 보관 및 공유가 용이해집니다. 또한 파일에서 데이터를 읽어옴으로써 외부 데이터를 활용할 수 있습니다.

본 기사에서는 텍스트 파일과 CSV 파일에 대한 저장 및 읽기 예제를 제공하고, 실제 코드와 함께 그 절차를 설명했습니다. 또한 실습 문제를 통해 이해를 심화할 기회를 제공했습니다.

이 기술을 마스터함으로써 Python을 이용한 데이터 처리를 더욱 효율적이고 효과적으로 수행할 수 있습니다. 일상적인 프로그래밍에 적극 활용해 보시기 바랍니다.

목차