设为首页 收藏本站
查看: 1952|回复: 0

[经验分享] 如何把python2.x的脚本转为python3.x-Farley

[复制链接]

尚未签到

发表于 2018-8-16 09:52:08 | 显示全部楼层 |阅读模式

  •   利用Python内置(Python脚本)工具,帮你自动转换
  Python 2.x版本,比如我安装的Python 2.7.2,其在windows下载安装好之后,就自带了相关的一些有用的工具。
  其中一个叫做2to3.py,就是用来帮你实现,将Python 2.x的代码,转换为Python 3.x的代码的。
  其位置位于:Python安装的根目录F:\Python34\Tools\Scripts\2to3.py
  【如何利用2to3.py,实现将Python 2.x的代码,转换为Python 3.x的代码】     
  比如我手上有个Python 2.x的python脚本:
  F:\GitHub\test.py
  现在,想要将其转换为Python 3.x的代码。
  可以通过打开windows的cmd,进入到python34的安装目录,F:\Python34\Tools\Scripts
  A  按目录转换
  假设我要转换的代码所在目录在:F:\GitHub
  在cmd里面输入:
  F:\Python34\Tools\Scripts>python 2to3.py -w F:\GitHub\
  B 按指定代码转换
  F:\Python34\Tools\Scripts>python 2to3.py -w F:\GitHub\test.py
  即可成功转换,对应的执行结果:
  此时,你可以看到原先的test.py,已经变成了Python 3.x的代码了。
  对应的,也多出一个bak文件:test.py.bak,两者比较一下,即可看出区别:
  当前,对于2to3.py本身,也可以通过help查看到更多的用法:
F:\Python34\Tools\Scripts\>python 2to3.py --helpUsage: 2to3 [options] file|dir ... Options:  -h, --help            show this help message and exit  -d, --doctests_only   Fix up doctests only  -f FIX, --fix=FIX     Each FIX specifies a transformation; default: all  -j PROCESSES, --processes=PROCESSES                        Run 2to3 concurrently  -x NOFIX, --nofix=NOFIX                        Prevent a transformation from being run  -l, --list-fixes      List available transformations  -p, --print-function  Modify the grammar so that print() is a function  -v, --verbose         More verbose logging  --no-diffs            Don't show diffs of the refactoring  -w, --write           Write back modified files    -n, --nobackups       Don't write backups for modified files
    -o OUTPUT_DIR, --output-dir=OUTPUT_DIR
  Put output files in this directory instead of
  overwriting the input files.  Requires -n.
  -W, --write-unchanged-files
  Also write files even if no changes were required
  (useful with --output-dir); implies -w.
  --add-suffix=ADD_SUFFIX
  Append this string to all output filenames. Requires
  -n if non-empty.  ex: --add-suffix='3' will generate
  .py3 files.
  
  备注
  (1)如果上述不加-w参数,则默认只是把转换过程所对应的diff内容打印输出到当前窗口而已。
  (2)加了-w,就是把改动内容,写回到原先的文件了。
  (3)不想要生成bak文件,再加上-n即可。
  (4)不想看到那一堆输出的内容,加上–no-diffs,即可。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-552517-1-1.html 上篇帖子: python3.x的改进 下篇帖子: python之数据库操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表