Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
read()python之后奇怪的字符串格式_Python_String_Hex - Fatal编程技术网

read()python之后奇怪的字符串格式

read()python之后奇怪的字符串格式,python,string,hex,Python,String,Hex,我正在尝试使用Python读取一个文件 open('/Desktop/test.csv','rb').read()[1:15] 我得到的回报是: '\xfeY\x00!\x00B\x00L\x00-\x00 \x00B' 即使当我在文本编辑器中打开test.csv时,它也是可读的字符串格式。有人知道这是什么格式以及如何将其转换回字符串吗?谢谢 这没什么奇怪的,一切都很好。Python正在使用转义序列来表示不可打印的字符: >>> '\x00' '\x00' >>

我正在尝试使用Python读取一个文件

open('/Desktop/test.csv','rb').read()[1:15]
我得到的回报是:

'\xfeY\x00!\x00B\x00L\x00-\x00 \x00B'

即使当我在文本编辑器中打开test.csv时,它也是可读的字符串格式。有人知道这是什么格式以及如何将其转换回字符串吗?谢谢

这没什么奇怪的,一切都很好。Python正在使用转义序列来表示不可打印的字符:

>>> '\x00'
'\x00'
>>> len('\x00')
1
>>> '\x65'
'e'
注意十六进制字符65是如何打印为
e
;毕竟,这是一个可打印的ASCII字母

您的数据可能被编码为与ASCII不同的格式;例如,试着用UTF-16解码它。在我看来,前1个字节类似于UTF-16 BOM的第二个字节:

>>> import codecs
>>> codecs.BOM_UTF16
'\xff\xfe'

这没什么奇怪的,一切都很好。Python正在使用转义序列来表示不可打印的字符:

>>> '\x00'
'\x00'
>>> len('\x00')
1
>>> '\x65'
'e'
注意十六进制字符65是如何打印为
e
;毕竟,这是一个可打印的ASCII字母

您的数据可能被编码为与ASCII不同的格式;例如,试着用UTF-16解码它。在我看来,前1个字节类似于UTF-16 BOM的第二个字节:

>>> import codecs
>>> codecs.BOM_UTF16
'\xff\xfe'

该文件使用UTF-16编码

>>> open('/Desktop/test.csv', 'r', encoding='UTF-16').read(7)
'Y!BL- B'
或者,如果您仍然使用较旧的Python版本

>>> import codecs
>>> codecs.open('/Desktop/test.csv', 'r', encoding='UTF-16').read(7)
u'Y!BL- B'
还要注意,Python使用基于零的索引,就像大多数其他语言(C、Java、C#、JavaScript等)一样


该文件使用UTF-16编码

>>> open('/Desktop/test.csv', 'r', encoding='UTF-16').read(7)
'Y!BL- B'
或者,如果您仍然使用较旧的Python版本

>>> import codecs
>>> codecs.open('/Desktop/test.csv', 'r', encoding='UTF-16').read(7)
u'Y!BL- B'
还要注意,Python使用基于零的索引,就像大多数其他语言(C、Java、C#、JavaScript等)一样


你切了第一个字节,最大的提示被遗漏了!:-PYou将第一个字节切掉,最大的提示被遗漏了!:-P