我試圖將TSV文件的所有行讀取到列表中。但是,TSV閱讀器提前終止並且不能讀取整個文件。我知道這是因爲data
只是整個文件長度的1/6。發生這種情況時不會發生錯誤。當我手動檢查它終止的行時(對應的長度爲data
,這些行有大量的Unicode符號,我想我可以捕獲一個UnicodeDecodeError,但不是拋出一個錯誤,而是退出閱讀整個文件完全我想象它是觸發一個觸發文件結束的東西??CSV在Windows上默默不讀取Python上的所有行
什麼是真的引發我一個循環:錯誤只發生在我在Windows Server 2012上使用Python 2.7時。文件讀取100%完全在Python 2.7的Unix實現上使用下面的代碼片段,我在內部運行這個內部的蟒蛇。
這是我試過的既不工作:
data = []
with open('data.tsv','r') as infile:
csvreader = csv.reader((x.replace('\0', '') for x in infile),
delimiter='\t', quoting=csv.QUOTE_NONE)
data = list(csvreader)
我也試着讀一行行...
with open('data.tsv','r') as infile:
for line in infile:
try:
d = line.split('\t')
q = d[0].decode('utf-8') #where the unicode symbols are located
data.append(d)
except UnicodeDecodeError:
continue
提前感謝!
太棒了。我完全忘了'r'和'rb',因爲Unix很多時候都讓我對它懶惰。切換標誌使其讀取整個文件。非常感謝! – Stevie