Python 十六进制变量赋值

2024-02-13

我使用一个变量来存储由套接字发送的数据。当我在程序中分配它时,它可以工作,但是当我从文件中读取它时,它被视为字符串。

Example:

data = '\x31\x32\x33'

print data

Outputs

123   # <--- this is the result I want when I read from a file to assign data


f = open('datafile')  <--- datafile contains \x31\x32\x33 on one line

data = f.readline()

print data

Outputs

\x31\x32\x33  # <--- wanted it to print 123, not \x31\x32\x33. 

在 Python 中,字符串'\x31\x32\x33'实际上只有三个字符'\x31'是序数为 0x31 (49) 的字符,所以'\x31'相当于'1'。听起来你的文件实际上包含 12 个字符\x31\x32\x33,相当于Python字符串'\\x31\\x32\\x33',其中转义的反斜杠表示单个反斜杠字符(也可以用原始字符串文字表示r'\x31\x32\x33').

如果您确实确定该数据应该是'123',那么您需要查看该文件是如何写入的。如果这是您可以控制的事情,那么您应该在那里解决它,这样您就不会得到由表示十六进制转义的多个字节组成的数据。

也有可能写入此数据的任何内容都已经使用某种数据交换格式(类似于 JSON),在这种情况下,您不需要更改它的写入方式,您只需要使用该数据的解码器 -交换格式(如json.loads(),但这不是 JSON)。

如果不知何故,以上都不是您真正想要的,而您只想弄清楚如何转换字符串,例如r'\x31\x32\x33' to '123'在 Python 中,您可以这样做:

>>> r'\x31\x32\x33'.decode('string_escape')
'123'

或者在 Python 3.x 中:

>>> br'\x31\x32\x33'.decode('unicode_escape')
'123'

edit:根据评论,看起来您实际上得到了十六进制字符串,例如'313233',将这样的字符串转换为'123'您可以使用十六进制解码:

>>> '313233'.decode('hex')
'123'

或者在 Python 3.x 上:

>>> bytes.fromhex('313233').decode('utf-8')
'123'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 十六进制变量赋值 的相关文章

随机推荐

  • 通过连接到满足某些条件的另一个表的最新记录来更新表

    我试图避免为此解决方案使用循环的冲动 而是使用基于集合的操作 我需要根据最近出现的与另一个表的连接来更新表中的每条记录 我的第一个想法是加入到我需要 最近日期 的表并根据连接条件进行分组 但是使用GROUP BY with UPDATE是无
  • new() 没有 delete() 是未定义行为还是仅仅是内存泄漏? [复制]

    这个问题在这里已经有答案了 可能的重复 内存泄漏是 C 中的 未定义行为 类问题吗 https stackoverflow com questions 1978709 are memory leaks undefined behavior
  • 使用 terraform 部署 Azure 功能

    我有以下 terraform 代码 用于使用 zip 部署将函数应用程序和函数部署到 Azure 门户 terraform required providers azurerm source hashicorp azurerm versio
  • 查找适用于 Windows 的 javafx jar 文件

    有谁知道在哪里可以找到该jar文件javafxWindows 的包 我只能找到 zip 文件和 exe 文件 有人可以回答并提供下载包的链接吗 您需要首先安装 javafx sdk 2 0 1 windows i586 exe 这将在您的计
  • 无法将 Firebase 导入到 Swift 类中

    我对 Firebase 和构建 iOS 应用程序完全陌生 在 Xcode 7 中 我尝试将 Firebase 导入到我的 Swift 类中 在一个 swift 文件中 我输入了 import Firebase 我收到一条错误消息 没有这样的
  • MvvmCross 5.4 在 ConsoleLogProvider 中使用 NullRef 启动应用程序时崩溃

    我已更新我的 Xamarin Android 应用程序包MvvmCross from 5 3 2 to 5 4并且应用程序在启动时开始崩溃 我手动确定原因是链接器 我有link SDK libs only选项已启用 随着None选项它工作得
  • Spinner 的 RxBindings?

    我是新的 android 和 rxjava 我经历过很多使用 rxbindings 监听事件的例子 比如这个 RxView clicks b subscribe new Action1
  • Java,如何绘制不断变化的图形

    以前没有这样做过 所以显然我很糟糕 这里 当前鼠标位置周围的 64 像素在表单上绘制得稍大一些 问题是 它 有点 慢 而且我不知道从哪里开始修复 除此之外 我创建了一个线程 在完成后不断调用更新图形和一些类似文本的 fps 以真正显示绘制事
  • RabbitTemplate 接收并重新排队

    我想从队列接收消息并立即将它们出队 事实上我想模仿rabbitMQ管理控制台的行为 它可以接收消息并将其重新排队 所以我的问题是如何做到这一点 起初 我试图克隆消息并重新发送它们 但rabbitTemplate似乎无法将消息直接发送到队列
  • Heroku 登录错误:证书链中的自签名证书

    我正在尝试在 Mac 上使用 Heroku CLI 当我尝试使用 Heroku 登录名登录 Heroku 并提供我的凭据时 出现以下错误 错误 证书链中的自签名证书 我已多次尝试卸载并重新安装它 但仍然收到此错误 我该如何解决 由于我的组织
  • 传递任意大小的二维数组

    您好 我正在研究排序算法 为此我想制作一个简单的程序来从文本文件中获取整数数组 在这样做的同时 我遇到了一些关于将它们作为参数的数组和函数的麻烦和问题 这是我所做的 include
  • MySQL 中的复合主键性能缺陷

    我们有一个表 其复合主键由三个字段组成 在 MySQL 5 1 中 该表每秒有近 200 次插入和 200 次选择 表的大小约为 100 万行 并且还在不断增加 我的问题是 复合主键 是否会降低该表上的插入和选择的性能 我应该使用简单的自动
  • 正确实现不同类型但语义等效的两个对象的比较

    我发现了类似的问题 如何比较具有相似属性的两个截然不同的对象 https stackoverflow com questions 1725327 how to compare two distinctly different objects
  • 使用 shell 脚本从文件中提取唯一的行块

    从文件中提取行块时 我遇到了一些问题 考虑以下两个文件 File 1 1 20 abc this is test 1 perl RRP RRP 1 30 JEDI JEDIExportSuccess2 exec perl RRP RRP 1
  • 如何在 Jenkins 管道脚本中使用 source 命令

    我最近将 bash 执行命令重写到 Jenkins 管道中 旧的代码就像 source environment sh Build Test 现在我使用管道脚本来包装命令 如下所示 sh source environment sh Build
  • 使用捏合手势在运行时缩放 SCNNode

    我正在尝试使用捏合手势实时缩放和 SCNNode 这是我当前的代码 let pinchGestureRecognizer UIPinchGestureRecognizer target self action selector handle
  • 在一定时间内淡出/过渡顺风等级到其他等级?

    有没有办法设置bg red 300并将其淡出 过渡到bg transparent或超过 2 秒的不同 bg 类 或者我是否需要 javascript 我想要一个元素突出显示 然后在 2 秒后恢复正常 谢谢你 您可以使用配置文件创建自己的动画
  • Pip3安装模块在哪里?

    乌班图15 10 Python 3 4 3 姜戈 1 8 7 当我尝试import django在 python3 解释器中 它说ImportError No module named django 我知道 Django 1 8 7 已安装
  • 获取 #000 格式的背景颜色而不是 RGB [重复]

    这个问题在这里已经有答案了 使用此代码 我可以获得表中任何 TD 的 RGB 颜色 alert this css background color 结果是 RGB 0 255 0 jquery 是否可以获取 000 格式 或者我可以使用函数
  • Python 十六进制变量赋值

    我使用一个变量来存储由套接字发送的数据 当我在程序中分配它时 它可以工作 但是当我从文件中读取它时 它被视为字符串 Example data x31 x32 x33 print data Outputs 123 lt this is the