데이터를 파일에 저장하면 프로그램이 작동하는 데이터의 기록을 유지할 수 있습니다. 즉, 프로그램으로 작업할 때 데이터를 다시 생성할 필요가 없습니다. 파일에서 해당 데이터를 읽기만 하면 됩니다.
파일을 읽으려면 readlines()
를 사용하세요. 방법. 파일을 읽은 후에는 split()
를 사용합니다. 해당 라인을 목록으로 변환합니다.
이 가이드에서는 split()
를 사용하는 방법에 대해 설명합니다. 텍스트 파일을 목록으로 읽는 방법. 텍스트 파일을 목록으로 빠르게 읽을 수 있도록 예제를 참조하겠습니다.
Python:목록으로 텍스트 파일 읽기
Grilled_cheese.txt라는 텍스트 파일부터 시작하겠습니다. 이 파일에는 구운 치즈 샌드위치의 재료가 들어 있습니다. 파일 내용은 다음과 같습니다.
2 tbsp, ricotta 1 tbsp, grated parmesan 50g, mozzarella 25g, gorgonzola 2, thick slices white bread 1 tbsp, butter
파일의 첫 번째 열에는 사용할 각 성분의 양이 포함됩니다. 두 번째 열에는 성분의 이름이 포함됩니다.
open()
을 사용하여 이 파일을 코드로 읽습니다. 및 readlines()
방법:
with open("grilled_cheese.txt", "r") as grilled_cheese: lines = grilled_cheese.readlines() print(lines)
코드에서 "grilled_cheese.txt"라는 파일을 읽기 모드로 엽니다. 읽기 모드는 open()
에서 "r" 문자로 표시됩니다. 성명. 다음으로 해당 라인을 콘솔에 출력합니다.
Python 코드가 반환하는 내용을 살펴보겠습니다.
참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.
부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.
['2 tbsp, ricotta\n', '1 tbsp, grated parmesan\n', '50g, mozzarella\n', '25g, gorgonzola\n', '2, thick slices white bread\n', '1 tbsp, butter\n']
코드는 파일의 각 줄 목록을 반환합니다. 이것은 우리가 기대하는 결과가 아닙니다. 파일을 목록으로 읽는 동안 문제가 있습니다. 각 줄은 자체 문자열에 저장됩니다. 성분과 함량은 별개가 아닙니다.
값을 목록으로 나누기
이 문제를 해결하기 위해 split() 메서드를 사용합니다. 이 방법을 사용하면 지정한 구분 문자를 사용하여 문자열을 나눌 수 있습니다.
시작하려면 수량과 성분이라는 두 가지 목록을 선언합니다. 이 코드는 open()
의 일부이기 때문에 들여쓰기된 상태로 유지됩니다. 코드 블록.
quantities = [] ingredients = []
파일에서 각 텍스트 줄에 액세스할 수 있도록 목록을 반복합니다. 그런 다음 각 줄을 두 부분으로 나눕니다. 구분점은 각 줄에 쉼표 다음에 공백이 오는 것입니다.
for l in lines: as_list = l.split(", ") quantities.append(as_list[0]) ingredients.append(as_list[1])
for 루프를 사용하면 파일을 한 줄씩 읽을 수 있습니다. "as_list"의 첫 번째 값은 성분의 양입니다. 두 번째 값은 성분의 이름입니다. 그런 다음 이 두 목록을 모두 콘솔에 인쇄합니다.
print(quantities) print(ingredients)
코드를 실행해 보겠습니다.
['2 tbsp, ricotta\n', '1 tbsp, grated parmesan\n', '50g, mozzarella\n', '25g, gorgonzola\n', '2, thick slices white bread\n', '1 tbsp, butter\n'] ['2 tbsp', '1 tbsp', '50g', '25g', '2', '1 tbsp'] ['ricotta\n', 'grated parmesan\n', 'mozzarella\n', 'gorgonzola\n', 'thick slices white bread\n', 'butter\n']
우리의 코드는 세 개의 목록을 콘솔에 출력합니다. 첫 번째 목록은 파일에 있는 모든 텍스트 줄의 목록입니다. 두 번째 목록에는 파일의 모든 양이 포함됩니다. 세 번째 목록에는 모든 재료가 포함되어 있습니다.
새 줄 제거
아직 한 가지 개선해야 할 사항이 있습니다. 모든 재료는 "\n" 문자로 끝납니다. 이 문자는 새 줄을 나타냅니다. replace() 메서드를 사용하여 이 문자를 제거할 수 있습니다.
for l in lines: as_list = l.split(", ") quantities.append(as_list[0]) ingredients.append(as_list[1].replace("\n", ""))
for 루프에서 "\n" 값을 빈 문자열로 바꿉니다. 각 성분의 이름과 상관관계가 있는 as_list[1] 값에서 이 작업을 수행합니다.
이제 이러한 변경을 수행했으므로 프로그램이 준비되었습니다.
with open("grilled_cheese.txt", "r") as grilled_cheese: lines = grilled_cheese.readlines() quantities = [] ingredients = [] for l in lines: as_list = l.split(", ") quantities.append(as_list[0]) ingredients.append(as_list[1].replace("\n", "")) print(quantities) print(ingredients)
코드를 실행하고 어떤 일이 일어나는지 봅시다:
['2 tbsp', '1 tbsp', '50g', '25g', '2', '1 tbsp'] ['ricotta', 'grated parmesan', 'mozzarella', 'gorgonzola', 'thick slices white bread', 'butter']
코드는 텍스트 파일을 두 개의 목록으로 성공적으로 변환합니다. 하나의 목록에는 레시피에 대한 재료의 양이 포함되어 있습니다. 다른 목록에는 레시피에 사용할 재료가 포함되어 있습니다.
결론
open()
을 사용하여 텍스트 파일을 읽을 수 있습니다. 및 readlines()
행동 양식. 텍스트 파일을 목록으로 읽으려면 split()
를 사용하세요. 방법. 이 방법은 문자열을 특정 문자의 목록으로 분할합니다.
위의 예에서는 쉼표와 공백(", ")의 위치에 따라 문자열을 목록으로 분할합니다. 이제 전문가처럼 Python에서 텍스트 파일을 목록으로 읽을 준비가 되었습니다.