Python - Wie Bash-Befehle mit Pipe aufrufen?

8

Ich kann das normal in der Befehlszeile unter Linux ausführen:

%Vor%

Aber wenn ich versuche, es mit Python aufzurufen, erhalte ich einen Fehler:

%Vor%     
Greg 06.09.2011, 17:37
quelle

4 Antworten

10

Sie müssen auch subprocess.PIPE verwenden, um den Befehl zu teilen. Sie sollten shlex.split() verwenden, um seltsame Verhalten in einigen Fällen zu verhindern:

%Vor%

Um jedoch ein Archiv zu erstellen und seine Prüfsumme zu generieren, sollten Sie die integrierten Python-Module tarfile und hashlib verwenden, anstatt Shell-Befehle aufzurufen.

    
MatToufoutu 06.09.2011, 17:44
quelle
3

Ok, ich bin mir nicht sicher warum, aber das scheint zu funktionieren:

%Vor%

Wer weiß, warum der ursprüngliche Code nicht funktioniert?

    
Greg 06.09.2011 17:45
quelle
2

Was Sie eigentlich wollen, ist, einen Shell-Subprozess mit dem Shell-Befehl als Parameter auszuführen:

%Vor%     
Dag 06.09.2011 19:33
quelle
1
%Vor%     
tMC 06.09.2011 17:46
quelle

Tags und Links