(この質問はこれに関連しています)
以前にメモリにロードされた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