[英]When I use f.write to write string, it only writes numbers/codes
我有一段简单的代码可将一堆字符串写入文件:
data = self.measure()
f = open('output.txt', 'w')
print data
for line in data:
print 'line:', line, type(line)
f.write(str(line))
f.close()
但这给了我一个输出文件,看起来像:
0034 0045 1056
0086 9078 0567...
我以为我的数据是unicode或其他什么东西,所以我尝试了一些类似更改为:
f.write(unicode(line))
这导致了相同的文件输出,但是当我使用它时:
f.write(str(line) + ';' + unicode(line))
我在文件中得到正确和预期的文本:
芯片版本0x02c4的hal_init();芯片版本0x02c4的hal_init()ram_prog,ed_list = [edata(0x50000,0x517c1)]; ram_prog,ed_list = [edata(0x50000,0x517c1)];摘要:;摘要:====。 ......等等
我不明白为什么,或者我做错了什么。 显然,我缺少有关“行”变量的格式/类型的信息。 但是type(line)只是告诉我它是一个字符串...
谁能解释?
我想到了。
SublimeText 3将输出文件编码为十六进制。 字符串中有一些十六进制值,我猜想它会发现并尝试更巧妙地编码... Blah
不知道为什么f.write(str(line)+';'+ unicode(line))代码使ST3编码有所不同...
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.