使用 cmd 在 Python 中调用 2to3
Calling 2to3 in Python using cmd
我有一个用 Python 2.7 编写的 .py 文件文件夹,我想使用 2to3 工具将其转换为 Python 3。在 cmd 提示符下使用 windows 10 我可以使用以下命令转换单个文件:
C:\Users\t\Desktop\search>python.exe 2to3.py -w graphicsDisplay.py
然而,这一行在 python shell 中时语法不正确,理想情况下,我希望能够遍历整个文件夹并更新所有 .py 文件,方法是使用以下 python cmd 中的代码:
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*
这是我似乎无法正确理解的最后一行,所以我想我的问题是,如何在 文件的每次迭代中调用 python 中的 2to3 函数变量?
您可以直接从命令行执行
for %a in (*.py) do python.exe 2to3.py -w "%a"
对于指定集合中的每个文件,执行传递 for
可替换参数(本示例中的 %a
)的转换,该参数保存对正在迭代的文件的引用。
如果您遗漏要转换的显式脚本,2to3 似乎支持递归文件夹检查。
将所有脚本放在一个文件夹中并针对该文件夹执行是否更容易?
来自:https://docs.python.org/2/library/2to3.html#
2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode
我有一个用 Python 2.7 编写的 .py 文件文件夹,我想使用 2to3 工具将其转换为 Python 3。在 cmd 提示符下使用 windows 10 我可以使用以下命令转换单个文件:
C:\Users\t\Desktop\search>python.exe 2to3.py -w graphicsDisplay.py
然而,这一行在 python shell 中时语法不正确,理想情况下,我希望能够遍历整个文件夹并更新所有 .py 文件,方法是使用以下 python cmd 中的代码:
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*
这是我似乎无法正确理解的最后一行,所以我想我的问题是,如何在 文件的每次迭代中调用 python 中的 2to3 函数变量?
您可以直接从命令行执行
for %a in (*.py) do python.exe 2to3.py -w "%a"
对于指定集合中的每个文件,执行传递 for
可替换参数(本示例中的 %a
)的转换,该参数保存对正在迭代的文件的引用。
如果您遗漏要转换的显式脚本,2to3 似乎支持递归文件夹检查。
将所有脚本放在一个文件夹中并针对该文件夹执行是否更容易?
来自:https://docs.python.org/2/library/2to3.html#
2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode