我正在将胡子文件解析为字符串,之后我想用csv模块处理该字符串。为此我使用StringIO生成一个类似于字符串接口的文件。 csv模块抱怨:
_csv.Error: line contains NULL byte
所以我做了一个简单的测试:
import pystache
from cStringIO import StringIO
txt = pystache.render('Hello {{name}}', {'name' : 'Steve'})
f = StringIO(txt)
data = f.read()
print txt.find('\x00')
print data.find('\x00')
print txt.count('\x00')
print data.count('\x00')
产生:
-1
1
0
33
StringIO对象以某种方式插入NULL字节。如果我使用未经pystache预处理的字符串,则不会发生这种情况:
from cStringIO import StringIO
txt = "Hello Steve"
f = StringIO(txt)
data = f.read()
print txt.find('\x00')
print data.find('\x00')
print txt.count('\x00')
print data.count('\x00')
结果如预期:
-1
-1
0
0
问题是什么?
答案 0 :(得分:1)
txt = "Hello Steve"
是一个字节字符串,预处理字符串可以是unicode字符串吗?