将一个Python2.7开发的测试工具项目转化为Python3。

工具:Python自带的2to3.py

将所有.py文件进行转化,生成的python3文件为原文件名,python2文件在后面加.bak

1. 代码如:b = str(a).strip("\0").decode('gbk') + ','

运行报错,显示“AttributeError: 'str' object has no attribute 'decode'”。

参考:https://blog.csdn.net/zz00008888/article/details/123383157

修改为:b = a.decode('gbk').strip("\0") + ','

2. 代码如:struct.pack_into('16s', self.buffer_, self.offset_, bufferdict['name'])

报错:python3 struct.pack方法报错argument for 's' must be a bytes object

参考:https://blog.csdn.net/weixin_38383877/article/details/81100192

修改为:

if 's' in self.format_:

  struct.pack_into(self.format_, self.buffer_, self.offset_, bufferdict['name'].encode('utf-8'))

else:

  struct.pack_into(self.format_, self.buffer_, self.offset_, bufferdict['name']

3. 代码如:resultlist.append(int(inputBuffer[i].encode('hex'), 16))

报错:python出错:AttributeError: 'int' object has no attribute 'encode'

修改为:resultlist.append(int(hex(inputBuffer[i]), 16))

4. 代码如:resultText = str(struct.unpack_from('1s', self.buffer_, offset)[0])

解析出的数据是b'2'

修改为:resultText = str(struct.unpack_from('1s', self.buffer_, offset)[0].decode('utf-8'))

解析出数据:2

将python2.7项目转为Python3问题记录的更多相关文章

  1. python2代码批量转为python3代码

    由于python存在python2和python3两个主要的版本方向,经常会有将python2的代码转到python3的环境下运行的需求.尤其是跑一些神经网络的代码时有很多是在python2的环境下写 ...

  2. 将python2代码转为python3

    将python2代码转为python3 1.2to3在anaconda的/bin文件夹下: 2.打印帮助信息 2to3 --help 3.使用2to3 -W [要转换的python2文件目录] 4.转 ...

  3. six库 解决python2的项目如何能够完全迁移到python3

    six库 解决python2的项目如何能够完全迁移到python3 SIX是用于python2与python3兼容的库. 它存在的目的是为了拥有无需修改即可在Python 2和Python 3上同时工 ...

  4. windows XP上实现python2.7.5和python3.4.3共存

    windows XP上实现python2.7.5和python3.4.3共存过程记录: 1. 首先安装python2.7.5和python3.4.3,两个版本安装顺序不分前后; 2. 检查系统环境变量 ...

  5. 老项目转为maven的步骤具体说明

    可先阅读 关于已有项目转为maven的一点看法 新建maven项目要点 事实上之前已转过几个.但忘了记录下来.今天又转了一个项目,补记录一下. 步骤 1.写pom.xml 最耗费时间的一步.由于不用m ...

  6. 如何用Eclipse将普通的JavaWeb项目转为Maven项目

    最新自己的第一个项目差不多稳定运行之后 想着将项目转为Maven项目.于是参考网上成功的将自己的普通的项目转为了maven项目,现在记录一下: 0.普通的java项目的结构如下: 1.接下来开始进行正 ...

  7. vs2005中删除最近打开的项目和文件的记录

    vs2005中总是保留最近打开的项目和文件的记录,甚至是以删除的它也不删,-_-!下面介绍几种删除的方法: 第一种:建立一个bat文件,以后双击即可清除,内置代码如下: @echo off@REG D ...

  8. ASP.NET中如何删除最近打开的项目和文件的记录

    ASP.NTET中总是保留最近打开的项目和文件的记录,甚至是已删除的它也不删.下面介绍几种删除的方法: 第一种:建立一个bat文件,以后双击即可清除,内置代码如下: @echo off@REG Del ...

  9. 项目中oracle存储过程记录——经常使用语法备忘

    项目中oracle存储过程记录--经常使用语法备忘 项目中须要写一个oracle存储过程,需求是收集一个复杂查询的内容(涉及到多张表),然后把符合条件的记录插入到目标表中.当中原表之中的一个的日期字段 ...

  10. 如何把Python2的代码转换为Python3的代码

    如何把Python2的代码转换为Python3的代码 注: 如果对于python2和python3不熟悉的,可以参考: [整理]总结Python2(Python 2.x版本)和Python3(Pyth ...

随机推荐

  1. Scrum敏捷开发方法实践

    前言   作者所在的公司在项目开发的过程中采用着当下互联网公司中流行的小步快跑开发策略,特别借鉴了敏捷开发中的迭代递增思想来指导项目的开发.我们经过对相关敏捷开发方法的调查研究,最终采用了Scrum敏 ...

  2. java中生成随机数

    本文主要讲述java中如何生成随机数. public class RandomTest { public static void main(String[] args) { // 生成随机数 方法1: ...

  3. MassTransit | 基于StateMachine实现Saga编排式分布式事务

    什么是状态机 状态机作为一种程序开发范例,在实际的应用开发中有很多的应用场景,其中.NET 中的async/await 的核心底层实现就是基于状态机机制.状态机分为两种:有限状态机和无限状态机,本文介 ...

  4. Codeforces Hello 2023 CF 1779 A~F 题解

    点我看题 A. Hall of Fame 先把不用操作就合法的情况判掉.然后发现交换LL,RR,RL都是没用的,只有交换LR是有用的,这样可以照亮相邻的两个位置.所以我们就是要找到一个位置i,满足\( ...

  5. python之路42 JavaScript 基础语法

    JavaScript简介 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准.次年,ECMA发 ...

  6. python基础练习题 经常更新

    小练习 1.打印出jason l1 = [11, 22, 'kevin', ['tony', 'jerry', [123, 456, 'jason']]] # print(l1[3][2][2]) l ...

  7. 在GCP上创建GCE的三种方式(Console,gcloud,Terraform)

    1 简介 如果要选择GCP为云平台,则经常需要创建GCE(Google Compute Engine),有以下几种方式: (1) 在浏览器创建 (2) 命令 gcloud (3) Terraform ...

  8. 使用Zolom内存解析运行python脚本(不落地)

    在目标机器运行python工具 好多工具都是python写的,如果目标机器是linux的话自带python环境可以很方便的运行这些工具,但是windows下是不自带python环境的,所以一种办法是直 ...

  9. for循環,逗號運算符,其他(+= -= *= /=)

  10. Coolify系列01- 从0到1超详细手把手教你上手Heroku 和 Netlify 的开源替代方案

    什么是Coolify 一款超强大的开源自托管 Heroku / Netlify 替代方案 coolLabs是开源.自托管和以隐私为中心的应用程序和服务的统称 为什么使用Coolify 只需单击几下即可 ...