2017-02-16 8 views
0

У меня есть папка .py-файлов, написанная на Python 2.7, которую я хочу преобразовать в Python 3 с помощью инструмента 2to3. Использование окна 10 в CMD строке я могу преобразовать один файл с помощью следующей команды:Вызов 2to3 в Python с использованием cmd

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

однако эта линия не является синтаксически правильным, если в оболочке Python и в идеале я хотел бы иметь возможность перебирать в целом папок и обновление всех .py файлов, используя, используя следующий код питона в 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* 

его последняя строка, которую я не могу показаться, чтобы получить права, так что я думаю, мой вопрос, как я могу назвать 2to3 в python на каждой итерации файлов переменная?

ответ

2

Вы можете сделать это непосредственно из командной строки

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

Для каждого файла в указанном наборе выполнить преобразование проходящего в for сменного параметра (%a в данном примере), который содержит ссылку на файл итерируемой.

+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