Eine spezielle batch-Befehl in python
Was ist, wenn ich möchte einen batch Befehl, der nicht bereits in einer Datei in python?
zum Beispiel:
REN *.TXT *.BAT
Könnte ich das in einem python-Datei irgendwie?
Was genau versuchst du hier zu tun? benennen Sie alle
.txt
Dateien zu .bat
?
InformationsquelleAutor user2072826 | 2013-06-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der "alten Schule" als Antwort zu nutzen, um die
os.system
. Ich bin nicht vertraut mit Windows, aber sowas würde den trick tun:Oder (vielleicht)
Nun aber, wie bemerkt, von Ashwini Chaudhary, die "empfohlen" Ersatz für
os.system
istUnterprozess.rufen Sie
Wenn
REN
ist eine Windows-shell - internen Befehl:Wenn es ein externe Befehl:
subprocess
Modul für solche Aufgaben, und diese ist bereits in deros.system
's docs wie auch.Für "fortgeschrittene" verwenden (wie Aufnahme-Ausgang) Sie haben Recht. Für die grundlegende Nutzung, leistet gute Arbeit 😉 wie auch immer, ich bin mir nicht sicher, wie Sie sich Verhalten werden "Teilprozess" während die Berufung auf interne shell-Kommandos. Sie berufen
subprocess.call
mitshell=True
, richtig? Editiere ich meine Antwort entsprechend. Vielen Dank für den Hinweis!shell = True
kann gefährlich sein und wird nicht empfohlen, verwenden Sie normalerweiseshlex.split
:subprocess.call(shlex.split('ren *.txt *.bat'))
Ich bin damit einverstanden, dass
shell=True
gefährlich werden könnte, beim aufrufen der Benutzer bereitgestellte Befehle (shell command injection) - aber ich glaube nicht, dass wir in dieser situation sind Sie hier. Die "shell-Kommando" zu sein scheint, zur Verfügung gestellt durch den Programmierer. Und (ich bin mir nicht sicher) wenn 'REN' ist eigentlich ein interne Windows-shell-Befehl -- benötigen Sie eine shell.shell = True
bedeutet nicht, dass der Befehl ein shell-Befehl ist erforderlich, wenn Sie vorbei sind eine einzelne Zeichenfolge zusubprocess
. docs.python.org/2/library/...InformationsquelleAutor Sylvain Leroux
versuchen Sie dies:
oder
InformationsquelleAutor Endoro
Einem Beispiel verwenden Teilprozess für einen Befehl auszuführen, der Linux von Python:
InformationsquelleAutor JHG
Erstellte ich eine
test.py
mit diesem, und es funktionierte....InformationsquelleAutor AjV Jsy