2016-12-09 6 views
0

나는 텍스트 파일 CustomerList.txt라는이 그리고 내가 지금까지 가지고 무엇을이데이터 파일의 각 행을 튜플 목록의 튜플로 만들려면 어떻게해야합니까?

134998,Madison,Foxwell,825 John Street,Staunton,VA,24401,6655414998

The end result should be like this

with open("CustomerList.txt", "r") as fin: 
    ID, Firstname, Lastname, Address, City, State, Zip, Phone = zip(*[l.split() for l in fin.readlines()]) 

처럼 보이지만 내가 더 3보다 필요라는 오류가 가치를 부양하십시오. 어제 튜플을 사용하기 시작 했으므로 가능한 한이 초보자를 위해 기본 사항을 유지하십시오. 왜 그것이 효과가 있었는지에 대한 설명을 포함시킬 수 있다면 좋을 것입니다!

1 단계 : 데이터 파일의 각 줄은 튜플 목록 (또는 목록 내의 목록)에서 튜플이되어야합니다. It would need to be before what I created in the last program which is this.

2 단계 : 반환 함수 내에서 일치를 검색하려면 ID 번호 (예 : 134998)를 가져와야합니다. 일치하는 항목이 있으면 빈을 반환하지 않으면 튜플/목록으로 반환합니다. 튜플 /리스트. 계산이 아니기 때문에 문자열 일 수 있습니다.

첫째, 기본 split()으로, 공백으로 분리 (즉, 빈 공간)과는 쉼표 (,)로 분할 할 - 그래서으로 변경 :

+1

'분할()'공백 문자를 사용하여 분할 '' ''(기본값). 그냥 쉼표로 구분하고 싶다고 생각합니다. ','', 대신'l.split (',')'를 사용해보십시오 ... – Julien

답변

0

희망의 아래 당신이 시작 얻을 것이다 .split(',') ...

또한 new_line 문자 (\n)를 제거하기 위해 rstrip()을 실행했습니다.

또한 전체 데이터가 아닌 각 줄마다 헤더를 압축하려고합니다. 현재의 'for 루프'는 각 행에 별도의 데이터 항목이 포함되어 반복되므로 Zip은 그 내부에 있어야하며 (외부 데이터는 압축하지 않아야합니다.) 각 개별 행을 압축해야합니다. 또한 필자는 긴 목록 변수를 할당하는 것보다는 배열을 압축하는 것이 더 쉽다는 것을 개인적으로 발견했다.

이 내가 첫 번째 단계로 시작하는 것이 방법입니다

with open("positionfile.txt", "r") as fin: 
    header = ['ID', 'Firstname', 'Lastname', 'Address', 'City', 'State', 'Zip', 'Phone'] 
    print [zip(header,l.rstrip().split(',')) for l in fin.readlines()]