(本問題是關係到this one)CSV讀者:行包含NULL字節
我讀解析CSV內容,先前已加載到內存中:
def ReadTxtIntoColumns(txt, columns):
rows = []
print txt
print txt.find('\x00')
print txt.count('\x00')
f = StringIO(txt)
try:
reader = csv.reader(f, delimiter=' ', skipinitialspace=True)
for row in reader:
# Merge all extra columns
if len(row) >= columns:
rest = ' '.join(row[columns-1:])
del row[columns-1:]
row.append(rest)
# And now set missing columns to None
for i in range (len (row), columns):
row.append(None)
rows.append(row)
except csv.Error, e:
log.error('ReadTxtIntoColumns > Problems reading csv from string > line %d: %s', reader.line_num, e)
finally:
f.close()
return rows
輸入數據已經被手 - 由我寫的(一個簡單的文本文件,空格分開)。有沒有「\ x00的」所有在我的輸入數據,但CSV抱怨吧:
ReadTxtIntoColumns > Problems reading csv from string > line 1: line contains NULL byte
什麼是錯誤訊息呢?
編輯
這是我簡單的輸入數據,我已經驗證這仍然引起了同樣的問題:
#COMMAND USER DIRECTORY SAFE COMMAND
uname - - FALSE uname -a
sleep - - FALSE sleep 100
您不需要將輸入封裝在'StringIO'對象中;只要通過任何迭代;例如,'text.splitlines(True)'會很好。 –
您能否給我們提供一個能夠重現問題的最小樣本「文本」值? –
不會'numpy.loadtxt'爲你的情況工作嗎? –