langes Shell comando mit subprocess ausführen Problem (")

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
sbfly
User
Beiträge: 32
Registriert: Montag 17. Oktober 2011, 14:57

Hallo

ich möchte meinen chache leeren bevor ich eine Funktion in einer Schleife ausführe
Hierzu verwende ich folgende shell Funkton

Code: Alles auswählen

flush_cache=subprocess.Popen(['sudo','sh', '-c','"/bin/echo 3 > /proc/sys/vm/drop_caches"'])
flush_cache.wait()
Leider scheint bei der Ausführung der Shell funktion diese nicht richtig übermittelt zu werden

kann mir hierbei jemand helfen?

Gruß

Sbfly
BlackJack

@sbfly: Mindestens die " sind da zu viel.
sbfly
User
Beiträge: 32
Registriert: Montag 17. Oktober 2011, 14:57

konnte es Lösen es funktionierte mit folgendem Befehl

Code: Alles auswählen

os.system('sudo sh -c "/bin/echo 3 > /proc/sys/vm/drop_caches"')
BlackJack

@sbfly: Die " weglassen hat nicht geholfen? `os.system()` ist nämlich keine wirkliche Lösung. Das `subprocess`-Modul ist ja gerade da um unter anderem diese Funktion abzulösen.
Antworten