我正在将一个 mustache 文件解析为一个字符串,之后我想使用 csv 模块处理该字符串。为此,我使用 StringIO 生成了一个类似于字符串接口(interface)的文件。 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
可能是什么问题?
请您参考如下方法:
txt = "Hello Steve" 是bytestring,预处理后的字符串可以是unicode字符串吗?
