我正在使用以下代碼處理一些CSV文件:reader = csv.reader(open(filepath, "rU"))try: for row in reader: print 'Row read successfully!', rowexcept csv.Error, e: sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e))一個文件引發此錯誤:file my.csv, line 1: line contains NULL byte我能做什么?Google似乎建議它可能是Excel文件,未正確保存為.csv。有什么辦法可以解決Python中的這個問題?==更新==在下面@JohnMachin的評論之后,我嘗試將以下行添加到腳本中:print repr(open(filepath, 'rb').read(200)) # dump 1st 200 bytes of filedata = open(filepath, 'rb').read()print data.find('\x00')print data.count('\x00')這是我得到的輸出:'\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00\x00\x00\x00\x00\x00\x00\ .... <snip>813834因此該文件確實包含NUL字節。
3 回答

白豬掌柜的
TA貢獻1893條經驗 獲得超10個贊
將其讀取為UTF-16也是我的問題。
這是我的代碼,最終起作用了:
f=codecs.open(location,"rb","utf-16")
csvread=csv.reader(f,delimiter='\t')
csvread.next()
for row in csvread:
print row
其中location是您的csv文件的目錄。

米脂
TA貢獻1836條經驗 獲得超3個贊
我也遇到了這個問題。使用Python csv模塊,我試圖讀取在MS Excel中創建的XLS文件,NULL byte并遇到遇到的錯誤。我環顧四周,發現了xlrd Python模塊,用于從MS Excel電子表格文件讀取和格式化數據。使用該xlrd模塊,我不僅能夠正確讀取文件,而且還可以以前所未有的方式訪問文件的許多不同部分。
我認為這可能對您有幫助。
添加回答
舉報
0/150
提交
取消