从python3到python2的踩坑

为什么要从py3到py2

背景:之前自学写过一些py3,而且我写的工具是基于python3来写的,但是公司项目是使用python2版本,希望已有工具或者新写的工具能同时在py2和py3上执行,所以记录此踩坑篇。

常见踩坑

python3中print要输出的内容要加上(),比如py2:print xxx,而py3: print(xxx)

Python 版本 2.7 不 支持 ‘F’ 前缀,就是不支持这种格式化的方法

py2没有xmlrpc.client?

第三方库

GitPython用来在python中操作git,但python2.7只能使用GitPython 2.x,而新版本3.x只支持python3

路径在py2中需要重新编码,比如:

if str.find(blob.abspath, "markdown_blogs")

迭代器

generators的迭代器方法在python2中为 __next__(),而python3中为next()

文本读取出错

编码出错

with open(path_cfgfile, "w", encoding="utf-8") as f:
    json.dump({}, f)

以上代码报告以下错误:(

[En]

The above code reports the following error: (

另一个错误:

for mdfile in glob.glob(path_draft + "*.md"):
    title, postid, publish = post_art(mdfile.decode("utf-8"), False)

中文文件名读取出来是乱码

原始文件名:大文件日志查看工具.md,打印出来:./article_draft\���ļ���־�鿴����.md

最后的解决办法是在pycharm的控制台下是乱码,但是powshell则是正常的

Original: https://www.cnblogs.com/zhaoqingqing/p/15478997.html
Author: 赵青青
Title: 从python3到python2的踩坑

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/510932/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球