【问题标题】:Converting string to number in python [closed]在python中将字符串转换为数字[关闭]
【发布时间】:2014-07-07 20:16:44
【问题描述】:

我有一个 .ktx 格式的文件。我已经以“rb”模式打开了文件。我想修改该文件中的特定字节。我正在使用 read(4) [我想读取 4 个字节的数字] 读取字节,调用并将每个块转换为一个数字。我想要的是,将该数字增加特定数字并将其插入回文件流中。 python中是否有将字节字符串转换为整数的函数?我尝试使用 int() 但它会打印一些二进制数据。

我的代码:

bytes=file.read(4)
for char in bytes:
    print hex(ord(char))

【问题讨论】:

  • 你说的是二进制字符串还是什么类型的字符串?
  • 现在问题澄清了吗?我想发布一个扩展答案,但目前不能。

标签: python file


【解决方案1】:

试试这个

How can I convert a character to a integer in Python, and viceversa?

这是您似乎想要做的建议的工作流程

  • 读取数据
  • 将数据转换为整数
  • 将 X 添加到整数,其中 X 是您要增加的值

【讨论】:

  • OP 正在处理打包的二进制数据,而不是 python ints。
  • 字节是字符,无论您使用哪种语言编程,都没有看到如何将字符转换为相应的数值是不适用的。
  • 在他自己的示例中,他一次迭代一个字符。所以这符合他迄今为止的实际工作。
  • 他一次迭代一个字符不正确,所以按照他的方法发布另一个不正确的答案是没有用的。
  • 您说他这样做是错误的,但同时投票关闭了歧义的原因,同时对此处的所有答案投了反对票。你是社区的资产。
【解决方案2】:
bytes = file.read(4)
bytesAsInt = struct.unpack("l",bytes)
do_something_with_int(bytesAsInt)

我认为这可能是您正在寻找的东西......虽然很难从问题中分辨出来

这是结构模块https://docs.python.org/3/library/struct.html的文档

【讨论】:

  • struct 绝对是要走的路,你甚至可以直接从文件流中读取。
  • 我怎样才能把它写回文件?
  • struct.pack ...
猜你喜欢
  • 1970-01-01
  • 2018-02-23
  • 1970-01-01
  • 2013-11-21
  • 2020-04-10
  • 1970-01-01
  • 1970-01-01
  • 2013-09-17
  • 2015-03-20
相关资源
最近更新 更多