In diesem Code erstellt subprocess.Popen /tmp/test.txt mit date
Ausgabe. Warum funktionieren die 2. "Druckzeilen" nicht? Ich würde für Ihre Hilfe danken.So lesen Sie die Datei der Subprozessausgabe
test]# touch /tmp/test.txt
test]# ./x1.py
/tmp/test.txt
()
/tmp/test.txt
()
test]# ./x1.py
/tmp/test.txt
('Sun Jun 19 15:10:21 PDT 2016\n',)
/tmp/test.txt
()
test]# cat x1.py
#!/usr/bin/python
from subprocess import Popen, PIPE
filename = "/tmp/test.txt"
lines = tuple(open(filename, 'r'))
print filename
print lines # this is not empty
file_ = open(filename, "w")
Popen("date", shell=True, stdout=file_)
file_.close()
lines = tuple(open(filename, 'r'))
print filename
# why is this empty even if file_ definitely created the /tmp/test.txt ?
print lines
test]#
Funktioniert gut für mich auf Ubuntu –
Neben: Warum sind Sie in einer Root-Shell? – edwinksl
Haben Sie '.wait()' ing in Betracht gezogen, damit der Popen fertig ist, bevor er seinen 'stdout' schließt? –