Ist das in Python möglich? Ich arbeite an Linux, also frage ich mich, ob es eine Möglichkeit gibt, Bash-Befehle beim Aufruf des Skripts zu kombinieren (so etwas wie pwd).Wie übergibt man das aktuelle Verzeichnis als Argument an ein Skript?
Antwort
Um das aktuelle Arbeitsverzeichnis zu erhalten, können Sie verwenden:
import os
os.getcwd()
Wenn Sie bash Befehle ausführen möchten, stellt fest, dass @DeepSpace subprocess
-os.system
bevorzugt wird, Syntax wie folgt:
import subprocess
subprocess.call("pwd")
os.system
ist immer noch funktionsfähig, können Sie etwas tun:
import os
os.system("pwd")
"os.system" ist veraltet. Es wird empfohlen, das 'subprocess' Modul zu verwenden. – DeepSpace
@DeepSpace Guter Punkt, Antwort bearbeitet –
Ja. Sie können os.curdir, kombiniert mit os.path.abspath
>>> import os
>>> os.path.abspath(os.path.curdir)
'/home/msvalkon'
Warum würden Sie? Sie können darauf im Skript selbst zugreifen. 'importieren os; os.getcwd() ' – DeepSpace
Natürlich können Sie die Ausgabe von bash-Befehlen an ein Skript übergeben, das von' sys.stdin' gelesen werden kann. Versuchen Sie dies in Ihrer Shell: 'pwd | python -c "import sys; print (sys.stdin.read() + 'Hallo, bash')" 'Oder sogar' pwd | python -c "print (input())" Aber du solltest "os" und "subprocess" beibehalten, es sei denn, du möchtest dein Skript so gestalten, dass du es per Pipe oder Redirect weiterleiten kannst. –