python2转python3代码_2to3 – 自动Python 2到3代码翻译 – 开发工具(Python教程)(参考资料)...

使用2to3

2to3通常与Python解释器一起安装为脚本。它也位于Python根目录的Tools/scripts目录下

2to3的基本参数是要转换的文件或目录列表。这些目录以递归方式遍历Python源.

这是一个示例Python 2.x源文件,

def greet(name): print "Hello, {0}!".format(name)print "What"s your name?"name = raw_input()greet(name)

它可以通过命令行上的2to3转换为Python 3.x代码:

$ 2to3 example.py

打印对原始源文件的差异。2to3也可以将所需的修改写回源文件。(原始文件的备份除非也给出了-n。)使用-w flag:

$ 2to3 -w example.py

改写后,使用

def greet(name): print("Hello, {0}!".format(name))print("What"s your name?")name = input()greet(name)

在整个翻译过程中保留注释和精确缩进.

默认情况下,2to3运行一组预定义的固定器。-l标志列出了所有可用的固定器。可以使用-f给出一组明确的运行修复程序。同样-x显式禁用了混音器。以下示例仅运行has_key fixers:

$ 2to3 -f imports -f has_key example.py

此命令运行除apply fixer之外的每个修复程序:

$ 2to3 -x apply example.py

一些修复程序是explicit,意味着它们不是默认运行的,必须在要运行的命令行上标记。这里,除了默认的修复程序,idioms修复程序运行:

$ 2to3 -f all -f idioms example.py

请注意如何通过all启用所有默认修复程序.

有时2to3会在源代码中找到需要更改的位置,但2to3无法自动修复。在这种情况下,2to3将在diff的下方为文件打印警告。您应该解决警告,以便符合3.x代码.

2to3也可以重构doctests。要启用此模式,请使用-d标志。请注意only doctests将被重构。这也不要求模块是有效的Python。例如,doctest就像reSTdocument中的例子也可以用这个选项重构.

-v选项可以输出关于翻译过程的更多信息.

因为一些打印语句可以解析为函数调用或语句,2to3不能总是读取包含打印函数的文件。当2to3检测到from __future__ print_function编译器指令的存在时,它将其内部语法修改为将print()解释为函数。也可以使用-p标志手动启用此更改。使用-p在已经有其print语句转换的代码上运行修复程序

// -o或--output-dir选项允许指定处理输出文件的分析目录。使用它时需要-n标志,因为备份文件在没有覆盖输入文件时没有意义.

新版本3.2.3: -o选项已添加.

-W或--write-unchanged-files标志告诉2to3始终写入输出文件,即使文件不需要更改。这对-o最有用,所以整个Python源代码树都会从一个目录复制到另一个目录。这个选项意味着-w标志,否则就没有意义了.

版本3.2.3中的新增内容:添加了-W标志.

--add-suffix选项指定要附加到所有输出文件名的字符串。指定此时需要-n标志,因为在写入不同的文件名时不需要备份。示例:

$ 2to3 -n -W --add-suffix=3 example.py

将导致转换后的文件名为

新版本3.2.3: --add-suffix选项已添加.

要将整个项目从一个目录树转换为另一个目录树,请使用:

$ 2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文本表示

1 one-hot representation 该单词对应所在元素为1,向量中其他元素均为0,向量的维度就等于词库中的单词数目  所有向量都是互相正交的,我们无法有效的表示两个向量间的相似度  向量维度过大。 from sklearn.feature_extraction.text…

天池 在线编程 课程表(拓扑排序 + 回溯)

文章目录1. 题目2. 解题1. 题目 总共有n个课程,从0到n-1。 有些课程可能有先决条件,例如,你想修课程0,你必须先修一门课程1,这两门课之间的关系表示为:[0,1] 给定课程的总数和先决条件对的列表,返回你可以…

fence机制 linux_Linux ha fence设备测试

另外,在配置RHCS5.3时,Fence设备只ping通还不行,还必须经过测试,我在网上找了一篇IPMI的文章,现粘贴如下:What is IPMI?Intelligent Platform Management Interface[edit]AdvantagesLow cost.Available on…

Apache2.4 与 PHP 5.5 64位版的安装配置

我的环境:windows7 旗舰版 64位 首先下载相关文件: php 5.5.0 windows 64版 http://windows.php.net/download/#php-5.5 (选择 64位的下载) apache2.4 压缩版下载 http://www.apachelounge.com/download/VC11/ 下载版本一定要对应…

java 父子级json组装不用递归_2020面试阿里Java研发岗题库总结,想虐面试官不能错过的面试宝典...

前言:虽然天猫,蚂蚁金,菜鸟都归属阿里旗下,但每个面试官问的问题都不一样,相同点主要在流程方面。面试开始会让自我介绍,主要业务架构和技术架构两部分。业务架构一般不会深究,但要面试官听明白&#xff0c…

LeetCode 1748. 唯一元素的和

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums 。 数组中唯一元素是那些只出现 恰好一次 的元素。 请你返回 nums 中唯一元素的 和 。 示例 1: 输入:nums [1,2,3,2] 输出:4 解释:唯一元素为 [1,3] ,和为 4…

朵唯机器人怎么连网_平遥古城推出机器人导游 可伴游还可骑行

近日,一组集景点讲解、语音互动等多种功能于一身的机器人亮相平遥古城,引发游客关注。2月27日,北京青年报记者从景区旅游公司处了解到,这批机器人导游已经上岗5天,主要是为了填补下午5点人工导游下班后,古城…

【DFS】HDU 1364 POJ 1071 Illusive Chase

数据水了。。。 不知道正解是什么 将TOM放在一个0上经过输入的 1 2 R 这样走 还能在图上则这个点可行&#xff08;走的过程中不能走出图&#xff09; 求有几个0 可行 直接dfs 完全没有别的思路 题目要求必须 走 A - B 步 所以在走A步不能遇到 1 #include <cstdio> #inc…

python类中变量作用域_Python中的变量作用域

1、块级作用域 1 if 1 1:2 name "lzl" 3 4 print(name) //输出lzl5 6 7 for i in range(10):8 age i9 10 print(age) //输出9 在Java/C#中&#xff0c;执行上面的代码会提示name&#xff0c;age没有定义&#xff0c;而在Python中可以执行成功&#xff0c;这是因为在…

评论数据获取、词频统计、词云图

# coding: utf-8 # In[2]: import urllib.request import re import requests import time import random import json # 设置请求头 headers (User-Agent, Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537…

pytorch 语义分割loss_vedaseg:基于pytorch的开源语义分割工具库,更多模型支持,更易拓展...

加入极市专业CV交流群&#xff0c;与6000来自腾讯&#xff0c;华为&#xff0c;百度&#xff0c;北大&#xff0c;清华&#xff0c;中科院等名企名校视觉开发者互动交流&#xff01;更有机会与李开复老师等大牛群内互动&#xff01;同时提供每月大咖直播分享、真实项目需求对接…

LeetCode 1749. 任意子数组和的绝对值的最大值(前缀和)

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums 。 一个子数组 [numsl, numsl1, ..., numsr-1, numsr] 的 和的绝对值 为 abs(numsl numsl1 ... numsr-1 numsr) 。 请你找出 nums 中 和的绝对值 最大的任意子数组&#xff08;可能为空&#xff09;&#xff0c;并返…

字符设备驱动0:一个简单但完整的字符设备驱动程序

参考&#xff1a; linux设备驱动程序之简单字符设备驱动 【很详细,必看】http://www.cnblogs.com/geneil/archive/2011/12/03/2272869.html //在驱动入口函数中&#xff0c;使用register_chrdev添加字符设备驱动&#xff1a;#include <linux/module.h> #include <linu…

同一个项目相互调接口_408计算机网络D3-第二章:网络体系结构与参考模型(上)分层结构-协议-接口-服务...

网络体系结构是从功能上描述计算机网络结构。计算机网络体系结构简称网络体系结构是分层结构&#xff1b;是计算机网络的各层及其协议的集合。每层遵循某个/些网络协议以完成本层功能。分层结构-协议-接口-服务首先就是为什么要分层发送文件前要完成的工作发起通信的计算机必须…

自动摘要

#!/user/bin/python # coding:utf-8 import nltk import numpy import jieba import codecs import os class SummaryTxt: def __init__(self,stopwordspath): # 单词数量 self.N 100 # 单词间的距离 self.CLUSTER_THRESHOLD 5 …

专家 安全_船级社专家组到公司开展安全生产标准化考核

12月17日&#xff0c;船级社专家组一行到公司开展安全生产标准化考核工作&#xff0c;公司党委书记、执行董事曲贝贝&#xff0c;执行总经理(主持生产经营工作)陈飞&#xff0c;执行总经理、安全总监李中华&#xff0c;党委副书记、纪委书记、工会主席刘小丽&#xff0c;总经济…

LeetCode 1750. 删除字符串两端相同字符后的最短长度(双指针)

文章目录1. 题目2. 解题322 / 1676&#xff0c; 19.2%1166 / 8426&#xff0c;13.8%https://leetcode-cn.com/contest/biweekly-contest-45/ranking/ 前两题&#xff1a; LeetCode 1748. 唯一元素的和 LeetCode 1749. 任意子数组和的绝对值的最大值&#xff08;前缀和&#xf…

分词、语法树

######Jieba分词###### import jieba string如果一个文法存在某个句子对应两棵不同的语法树&#xff0c;则称这个文法是二义的 print(string) seg_listjieba.cut(string,cut_allFalse,HMMTrue) seg_str .join(seg_list) ######PCFG句法分析###### from nltk.parse import stan…

Android开发学习笔记-自定义组合控件

为了能让代码能够更多的复用&#xff0c;故使用组合控件。下面是我正在写的项目中用到的方法。 1、先写要组合的一些需要的控件&#xff0c;将其封装到一个布局xml布局文件中。 <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:an…

python基础实例 韦玮 pdf_Python基础实例教程(微课版)

第 1章 初识Python 1 1.1 快速了解Python 2 1.1.1 Python的起源与背景 2 1.1.2 Python的功能 3 1.1.3 Python的优势与特色 4 1.2 在Windows下搭建Python开发环境 6 1.2.1 操作系统的选择 6 1.2.2 在Windows下安装Python 7 1.3 在Linux下搭建Python开发环境 1…