2017-11-15 16 views
0

형식이없는 탭으로 구분 된 파일이 있습니다. 파일 형식은 FILE로 표시됩니다. 처음 세 개의 열이 3g을 선고하고 나머지는 단어 빈도에 관련되는 경우파이썬에서 탭으로 구분 된 파일의 특정 행을 구문 분석

Job Wanted_VERB "_. 2000 1 1 
Job Wanted_VERB "_. 2001 1 1 
Job Wanted_VERB "_. 2002 5 5 
Job Wanted_VERB "_. 2004 2 2 
Job Wanted_VERB "_. 2005 2 2 
Job Wanted_VERB "_. 2006 2 2 
Job Wanted_VERB "_. 2007 1 1 
Job Well Done 1917 1 1 
Job Well Done 1930 3 2 
Job Well Done 1937 1 1 
Job Well Done 1940 5 4 
Job Well Done 1941 3 3 
Job Well Done 1942 1 1 
Job Well Done 1943 2 2 
Job Well Done 1944 1 1 
Job Well Done 1945 1 1 
Job Well Done 1946 3 3 
Job Well Done 1948 1 1 
Job Well Done 1949 4 4 
Job Well Done 1950 1 1 
Job Well Done 1951 3 2 
Job Well Done 1952 6 4 
Job Well Done 1953 9 5 
Job Well Done 1954 6 4 
Job Well Done 1955 5 5 
.... 
.... 

: 나는 텍스트 편집기를 열 때처럼, 그것은 보인다.

거대한 파일이므로 찾고자하는 3g 단어 만 포함하는 부분을 구문 분석하고 싶습니다. 예를 들어 위의 표에서 Job Well Done 부분 만 파싱하고 싶습니다.

Job Well Done 1917 1 1 
Job Well Done 1930 3 2 
Job Well Done 1937 1 1 
Job Well Done 1940 5 4 
Job Well Done 1941 3 3 
Job Well Done 1942 1 1 
Job Well Done 1943 2 2 
Job Well Done 1944 1 1 
Job Well Done 1945 1 1 
Job Well Done 1946 3 3 
Job Well Done 1948 1 1 
Job Well Done 1949 4 4 
Job Well Done 1950 1 1 
Job Well Done 1951 3 2 
Job Well Done 1952 6 4 
Job Well Done 1953 9 5 
Job Well Done 1954 6 4 
Job Well Done 1955 5 5 
나는 현재 전체 파일을 구문 분석하고 목록에 넣어이 일을하고

:

with open(file, 'rt', encoding='UTF8') as input: 
    z = [line.strip().split('\t') for line in input] 

어떤 도움?

답변

0

예, 다음과 같이 if 문으로 startswith을 추가

with open(file, 'rt', encoding='UTF8') as input: 
    z = [line.strip().split("\t") for line in f if line.startswith("Job Well Done")] 
+0

그것은 나에게 오류를 제공합니다 ValueError를을 : I/O 작업 폐쇄 파일. – Dawn17

+0

@ Dawn17 당신이 이미 파일을 읽는 곳이 어디라고 말한 것 같습니다. –

+0

나는 그것을 읽는 동안 파일을 구문 분석하고 싶었다 – Dawn17