【问题标题】:Calling 2to3 in Python using cmd使用 cmd 在 Python 中调用 2to3
【发布时间】:2017-02-16 18:20:30
【问题描述】:

我有一个用 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 函数?

【问题讨论】:

    标签: python cmd python-2to3


    【解决方案1】:

    您可以直接从命令行执行此操作

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

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

    【讨论】:

      【解决方案2】:

      如果您遗漏要转换的显式脚本,2to3 似乎支持递归文件夹检查。

      将所有脚本放在一个文件夹中并针对该文件夹执行会更容易吗?

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

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

      【讨论】:

      • Ezsrac 感谢您的回答。另一个工作得很好,所以我没有尝试过,但感谢您的回复。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多