2009-07-16 13 views
1

Ich muss ein Skript im Hintergrund über einen Dienst ausführen.Die Ausführung des Skripts mit Popen schlägt fehl

Der Dienst startet das Skript mit Popen.

p = Popen('/path/to/script/script.py', shell=True) 

Warum funktioniert das folgende Skript nicht, wenn ich die Dateischreibvorgänge in die for-Schleife einschließe?

#!/usr/bin/python 

import os 
import time 

def run(): 
    fd = open('/home/dilleyjrr/testOutput.txt', 'w') 

    fd.write('Start:\n') 
    fd.flush() 

    for x in (1,2,3,4,5): 
     fd.write(x + '\n') 
     fd.flush() 
     time.sleep(1) 

    fd.write('Done!!!!\n') 
    fd.flush() 

    fd.close() 

if __name__ == '__main__': 
    run() 

Antwort

1

Hier ist Ihr Fehler:

for x in (1,2,3,4,5): 
    fd.write(x + '\n') 

Sie können keine int in einen String zusammenzufassen. Verwenden Sie stattdessen (z. B.)

for x in (1,2,3,4,5): 
    fd.write('%s\n' % x) 
+0

Ich habe Berechtigungen für die Datei als 777. Ich habe es nur auf/tmp, Ihr Recht, das wäre besser für diese Prüfung geschaltet. Die Ergebnisse sind die gleichen, wenn ich die Loop-Datei auskommentiert schreibt die Ausgabe ist ... Start: Fertig !!!! Mit ihnen enthält der Ausgang ist ... Start: – Ron

+0

Tx Ron für die Überprüfung der Berechtigungen Problem - aufgefordert, mich zu einer gründlichen Code-Überprüfung und finde Ihren Fehler finden Sie in meiner gerade bearbeiteten Antwort. –

+0

Danke --- Ich bin zu neu für Python, aber ich vergesse immer wieder, dass du das nicht kannst, wie du es in Perl kannst. Jetzt, wo das gelöst ist, kann ich meine Probleme mit dem echten Skript lösen. (Denken Sie, dass sie umweltbezogen sind.) Ich werde diesen verwenden, um die Umgebung auszuspucken. – Ron

0

Welchen Fehler bekommen Sie? Es ist schwierig, das Problem ohne den Fehler zu sehen. Gibt es trotzdem, dass die Datei woanders geöffnet ist?

+0

Ich sehe keine Fehler. Das Skript wird im Hintergrund des Dienstes ausgeführt. Die Datei ist mit keiner anderen Anwendung geöffnet. Ich bin neu beim Schreiben von Diensten/mod_python/apache, wenn es einige Fehler geben sollte, können Sie auf die Protokolldateien hinweisen? Danke. – Ron

Verwandte Themen