使用Python2.x和Python3.x从命令行打印十六进制数据并重定向到文件
因此,我试图通过将使用Python2.x和Python3.x从命令行打印十六进制数据并重定向到文件,python,linux,hex,command-line-interface,Python,Linux,Hex,Command Line Interface,因此,我试图通过将print的输出重定向到文件中来将数据写入文件 在Python2.x中,我是以Python-c“print'\x80'>myFile的方式完成的 使用xxd myFile检查hextump时,正确显示800a(忽略换行符0a) 在python3.x中,我尝试将其作为myFile的python3-c“print('\x80')”> 但是,这次hextump是c280 0a 在尝试了一些变通方法之后,我注意到这只发生在大于或等于(十进制)128的值上 python3-c“打印('\
print
的输出重定向到文件中来将数据写入文件
在Python2.x中,我是以Python-c“print'\x80'>myFile
的方式完成的
使用xxd myFile
检查hextump时,正确显示800a
(忽略换行符0a
)
在python3.x中,我尝试将其作为myFile的python3-c“print('\x80')”>
但是,这次hextump是c280 0a
在尝试了一些变通方法之后,我注意到这只发生在大于或等于(十进制)128
的值上
python3-c“打印('\x7f')”>myFile
正确写入7f0a
我所寻找的是一种在Python 3.x中这样编写它的方法,同时避免,例如,我自己从十六进制转换为十进制。实际上,这是因为Python 2有两个相似的序列:字符串和Unicode字符串,分别对应于str
和Unicode
因此,在Python 2中,可以对字符串进行编码:
>>> u = unichr(0x80)
>>> u.encode('utf-8')
>>> '\xc2\x80'
但在Python3中,所有字符串都是Unicode字符串,并且print('\x80')
返回'\xc2\x80'
,这是U+0080
Unicode代码点的UTF-8表示