Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python:텍스트 파일을 목록으로 읽기

데이터를 파일에 저장하면 프로그램이 작동하는 데이터의 기록을 유지할 수 있습니다. 즉, 프로그램으로 작업할 때 데이터를 다시 생성할 필요가 없습니다. 파일에서 해당 데이터를 읽기만 하면 됩니다.

파일을 읽으려면 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에서 텍스트 파일을 목록으로 읽을 준비가 되었습니다.