2012-10-29 2 views
-2

Possible Duplicate:
Reading a File into a Dictionary And Keeping Count파일에서 사전을 만들기 내가 두 값과 사전을 만들려고하고

: 첫 번째 값은 텍스트입니다 :

<NEW ARTICLE> 
Take a look at 
what I found. 
<NEW ARTICLE> 
It looks like something 
dark and shiny. 
<NEW ARTICLE> 
But how can something be dark 
and shiny at the same time? 
<NEW ARTICLE> 
I have no idea. 

두 번째 값은 횟수의 수입니다 "ARTICLE"이라는 단어가 사용됩니다.

나는 다른 방법을 시도하고 하나의 방법은이 오류받은 : 나는 몇 가지 방법을 시도했지만 아무 소용이, 하나의 방법 I했습니다

(key, val) = line.split() 
ValueError: need more than 1 value to unpack 

:

내가받는 erorr이입니다 시도해 보니 포장을 푸는 데 너무 많은 값이 주어졌습니다.

나중에 사전에서 키/단어를 검색하고 해당 개수를 찾고 싶습니다. 파이썬 3

+0

같은 질문을 [h ere] (http://stackoverflow.com/questions/13115214/reading-a-file-into-a-dictionary-and-keeping-count). 반복적으로 같은 질문을하는 것이 바람직하지 않습니다. – inspectorG4dget

답변

1

를 사용

이 그것을 수행해야합니다

>>> with open("data1.txt") as f: 
...  lines=f.read() 
...  spl=lines.split("<NEW ARTICLE>")[1:] 
...  dic=dict((i,x.strip()) for i,x in enumerate(spl)) 
...  print dic 
... 
{0: 'Take a look at \nwhat I found.', 
1: 'It looks like something\ndark and shiny.', 
2: 'But how can something be dark\nand shiny at the same time?', 
3: 'I have no idea.'} 
+0

흠, 인쇄 할 때 빈 사전이 계속 나오고 파이썬 3을 사용하고 있습니다. – Goose

+0

@Goose는 이것을 파이썬 3.x에서 테스트 했으므로 제대로 작동합니다. –

+0

그것은 작동하지만 개념은 초심자가 내 머리를 감싸기에 약간 까다 롭습니다. "dic = dict (i, x.strip(), i는 x를 열거합니다 (spl))"에 대해 설명 할 수 있습니까? 정확히 당신의 대답에? 그럼 나는 그것을 옳은 것으로 선택할 수 있습니다. – Goose

0

을 당신이 어딘가에 빈 줄이없는 있는지 확인하십시오 :

if newdoc == True and line != "ARTICLE>" and line: 
    (key, val) = line.split() 

이 (빈 줄이 갈라 것을 [], 두 요소가있는 튜플로 구문 분석 할 수 없음 ...)

+1

또 다른 문제가 있습니다 :'line! = "ARTICLE>"'항상 사실입니다. –

+0

하지만'line == ""'이라면 조건이 만족되지 않습니다. –

+0

참이지만 그의 행 중 어느 것도''ARTICLE> ''과 완전히 똑같지 않으므로 코드는 확실히 작동하지 않을 것입니다. 아마도'line.endswith ("ARTICLE>")'... –

관련 문제