我有一段简单的代码可以将一堆字符串写入文件:
x1 x2 y1 y2 z1 z2
1 abc1000000 NA pqr2000000 NA olk78fgzu_zuii8999_ikooo NA
2 oljhh88999 NA lop9876666 NA NA NA
3 frdt876544 NA ztr6u76532 uzrt899963 wertttts_765342_ioooosww zuuuee_66554422_88uuiiid
但这给了我一个输出文件,如:
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()
我认为我的数据是unicode或者其他东西,所以我尝试了一些改变这样的事情:
0034 0045 1056
0086 9078 0567...
导致相同的文件输出 但是,当我使用它时:
f.write(unicode(line))
我在文件中获得了正确的和预期的文本:
hal_init()用于芯片版本0x02c4; hal_init()用于芯片版本 0x02c4ram_prog,ed_list = [edata(0x50000,0x517c1)]; ram_prog,ed_list = [edata(0x50000,0x517c1)];摘要:;摘要:==== .......等
我不明白为什么,或者我做错了什么。很明显,我遗漏了变量'line'的格式/类型。但是type(line)只是告诉我它是一个字符串......
任何人都可以解释一下吗?
答案 0 :(得分:0)
我明白了。
SublimeText 3将输出文件编码为十六进制。字符串中有一些十六进制值,我猜它有点和编程聪明的编码... Blah
不确定为什么f.write(str(line)+';'+ unicode(line))代码使ST3编码不同......
由于