2016-01-21 90 views
-3

當我使用下面的python代碼來處理right.txtwrong.txt,雖然看起來完全一樣,但是wrong.txt不能運行。這是縮進問題嗎?python錯誤的文件格式導致解壓錯誤

我的代碼是在這裏:

import re 
if __name__ == '__main__': 
    with open('wrong.txt') as fin: 
     text = fin.read() 
    l = [p for p in text.split('\nSentence #') if p] 
    for p in l: 
     lines, deps = tuple(p.split('\n\n')[:2]) 

right.txt:

Sentence #1 (33 tokens): 
introduction. 
[Text=. CharacterOffsetBegin=208 CharacterOffsetEnd=209 PartOfSpeech=. Lemma=.] 
(ROOT 

    (. .))) 

root(ROOT-0, stored-18) 

wrong.txt:

Sentence #1 (33 tokens): 
introduction. 
[Text=. CharacterOffsetBegin=208 CharacterOffsetEnd=209 PartOfSpeech=. Lemma=.] 
(ROOT 

    (. .))) 

root(ROOT-0, stored-18) 
+1

爲什麼不粘貼文件的內容的權利* *在這裏? – luoluo

+0

太長了。我提供了一個鏈接,可以打開嗎? –

+0

提供文件的*相關*部分(可能兩者);每一行只有幾行可能會顯示出不同。 – Evert

回答

0

我有一個比較兩個txt文件,並發現(4111)差異是所有行結尾(新行)。 right.txt使用(0x0a,'\ n'); wrong.txt使用(0x0d0a,'\ r \ n')。

考慮到上面,代碼可能是這樣的:

import re 
if __name__ == '__main__': 
    with open('wrong.txt') as fin: 
     text = fin.read() 
    ending = '\r\n' if '\r\n' in text else '\n' 
    l = [p for p in text.split(ending + 'Sentence #') if p] 
    for p in l: 
     lines, deps = tuple(p.split(ending * 2)[:2])