2017-02-16 4 views
0

Ich habe einen Ordner mit .py-Dateien in Python 2.7 geschrieben, die ich mit dem 2to3-Tool in Python 3 konvertieren möchte. Verwendung von Windows 10 in der Befehlszeile kann ich eine einzelne Datei mit folgendem Befehl konvertieren:Aufruf von 2to3 in Python mit cmd

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

aber diese Zeile nicht syntaktisch korrekt ist, wenn es in Python-Shell und im Idealfall würde Ich mag durch die ganzen laufen zu können, Ordner und aktualisieren alle Py-Dateien die mit dem folgenden python-Code in 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* 

seine die letzte Zeile, die ich nicht richtig zu machen scheinen, also denke ich, meine Frage ist, wie kann ich das nennen 2to3 Funktion in Python bei jeder Iteration der Dateien Variable?

Antwort

2

Sie können es Leitung direkt von der Kommando tun

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

für jede Datei in dem angezeigten Satz die Umwandlung Passieren der for ersetzbaren Parameter (%a in dieser Probe) auszuführen, die der Verweis auf die Datei iteriert werden hält.

+0

Das funktionierte perfekt, danke! – Braide

0

Sieht aus wie 2to3 Unterstützung rekursiven Ordner überprüfen, wenn Sie ein explizites Skript zum Konvertieren weglassen.

Wäre es einfacher, alle Ihre Skripte in einem Ordner zu haben und stattdessen dagegen auszuführen?

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

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

Ezsrac danke für Ihre Antwort. Ein anderer funktionierte perfekt, also habe ich das nicht versucht, aber ich weiß es zu schätzen, dass du reagierst. – Braide