2017-02-16 52 views
0

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

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* 

它的最后一行,我似乎无法得到正确的,所以我想我的问题是,我怎么能叫的2to3函数在python上的每次迭代的文件中变量?

回答

2

可以从命令行

for %a in (*.py) do python.exe 2to3.py -w "%a" 

直接做到这一点对于在指定的组中的每个文件执行保持该参考文件正在迭代转换传递(在此示例中%a)的for替换的参数。

+0

这完美地工作,谢谢! – Braide

0

看起来像2to3支持递归文件夹检查,如果你没有明确的脚本进行转换。

将所有脚本放在一个文件夹中执行反而会更容易吗?

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

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

Ezsrac谢谢你的回答。另一个工作完美,所以我没有尝试过,但我很感激你的回应。 – Braide