繁体   English   中英

当我使用f.write写字符串时,它只写数字/代码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM