python - 读取文件,在 windows 或 linux 上的结果不同

标签 python linux windows

我有相同的代码,我在 raspberrywin7 上运行它,但我无法得到相同的结果

代码:

with open('file','rb') as fd:
    ttt = fd.read(4)
    print (ttt)
    seed = unpack('>I', fd.read(4))[0]
    print str(seed)    

linux 上我得到了很好的结果。

b')M7\xeb'
692926443

但是在 windows 上,我有

>M7ù
1401564715

为什么会有这种差异?为什么在 linux 上我有超过 4 个字符?

编辑: 我终于找到了一种方法来获得相同的结果。

import codecs
with codecs.open("G:/InsideReCaptcha-master/enc", mode='rb') as fd:
    ttt = fd.read(4)
    seed = unpack('>I', ttt)[0]

不确定所有代码是否有用,但它有效。

最佳答案

Linux 输出是二进制字符串表示,这就是它显示为 b'[STRING]' 的原因。重音字符显示为转义的 ASCII 替代字符。 Windows 输出是实际的字符串表示形式。要使它们相同,请使用解码:

print b'a string'.decode('ascii')

关于python - 读取文件,在 windows 或 linux 上的结果不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36653103/

相关文章:

python - pandas - 绘制分箱 x 与 y 的更好方法

linux - 执行二进制文件

C++添加包含文件的文件夹

windows - 我是否可以在我的 Windows 应用程序中嵌入几乎任何字体,前提是它仅在应用程序执行期间安装?

python - DataFrames 的选择性重新内存

python - 如何在 Pytorch/Python 中实现多项式回归

linux - 我可以在 Linux 中为长控制台命令创建快捷方式吗?

Java:从命令行运行时重定向内部进程输出

python - 递归函数后获取数据列表

json - 在 shell 脚本中使用 jq 过滤器从 stringify 对象获取 json 对象