使用cmd在Python中调用2to3

时间:2017-02-16 18:20:30

标签: python cmd python-2to3

我有一个用Python 2.7编写的.py文件文件夹,我希望使用2to3工具将其转换为Python 3。在cmd提示符中使用Windows 10,我可以使用以下命令转换单个文件:

C:\Users\t\Desktop\search>python.exe 2to3.py -w graphicsDisplay.py

然而,在python shell中,这一行在语法上是不正确的,理想情况下,我希望能够遍历整个文件夹并使用cmd中的以下python代码更新所有.py文件:

C:\Users\t\Desktop\search>python
>>> import os
>>> for files in os.listdir('*filepath*'):
>>>        if '.py' == str(files[-3:]):
>>>            *...some line of code here to perform 2to3*

它是我似乎无法做到的最后一行所以我想我的问题是,如何在 files 变量的每次迭代中调用python中的2to3函数?< / p>

2 个答案:

答案 0 :(得分:2)

您可以直接从命令行

执行此操作
for %a in (*.py) do python.exe 2to3.py -w "%a"

对于指定集合中的每个文件,执行转换,传递for可替换参数(此示例中为%a),该参数保存对正在迭代的文件的引用。

答案 1 :(得分:0)

如果省略要转换的显式脚本,看起来2to3支持递归文件夹检查。

将所有脚本放在一个文件夹中并执行相反的操作会更容易吗?

来自:https://docs.python.org/2/library/2to3.html#

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