我在python 2.7代码段中有一个字符串结果,并希望输出到文件中。
我输出到屏幕,文本看起来很好,但是文件被截断了,丢弃了文本的unicode部分。我尝试了各种转换模块,但找不到。
字符串是:
Feb 21 10:10 Will arrive control XX min
字符串上的repr()
和type()
的输出是:
repr u'Feb 21 10:10 W\x00i\x00l\x00l\x00 a\x00r\x00r\x00i\x00v\x00e \x00c\x00o\x00n\x00t\x00ro\x00l\x00 \x00X\x00X\x00 m\x00i\x00n'
<type 'str'>
我在文件或指导中得到的内容被截断:
Feb 21 10:11 W
我已经尽力在搜索中找到所有可能的内容,并且一定缺少我认为的简单内容。我不喜欢编码python,这是一个单独的项目。任何帮助表示赞赏。
答案 0 :(得分:1)
我已经做了类似的事情,并且正在工作:
>>> s = u'Feb 21 10:10 W\x00i\x00l\x00l\x00 a\x00r\x00r\x00i\x00v\x00e \x00c\x00o\x00n\x00t\x00ro\x00l\x00 \x00X\x00X\x00 m\x00i\x00n'
>>> f = open('test.txt', 'wb')
>>> f.write(s.encode())
>>> exit()
$ cat test.txt
Feb 21 10:10 Will arrive control XX min
但是当我没有二进制文件时
>>> s = u'Feb 21 10:10 W\x00i\x00l\x00l\x00 a\x00r\x00r\x00i\x00v\x00e \x00c\x00o\x00n\x00t\x00ro\x00l\x00 \x00X\x00X\x00 m\x00i\x00n'
>>> f = open('test.txt', 'w')
>>> f.write(s)
$ cat test.txt
Feb 21 10:10 Will arrive control XX min
一切看起来都很好,所以我不知道你在做什么错。也许您的文本查看器感觉不太好?
答案 1 :(得分:0)
非常感谢-我按照建议尝试了以下内容:-
pi@raspberrypi:~/md380tools $ python
Python 2.7.9 (default, Sep 17 2016, 20:26:04)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> s = u'Feb 21 10:10 W\x00i\x00l\x00l\x00 a\x00r\x00r\x00i\x00v\x00e \x00c\x00o\x00n\x00t\x00ro\x00l\x00 \x00X\x00X\x00 m\x00i\x00n'
>>> f = open('test.txt', 'wb')
>>> f.write(s.encode())
>>> exit()
pi@raspberrypi:~/md380tools $ more test.txt
Feb 21 10:10 W
pi@raspberrypi:~/md380tools $ cat test.txt
Feb 21 10:10 Will arrive control XX minpi@raspberrypi:~/md380tools $
因此通过“更多”查看文件似乎存在问题?我必须承认,我不明白为什么猫能工作,而更多却不起作用
再次感谢
汤姆