Hallo,
ich habe ein paar Fragen zu der Anwendung bzw. Notwendigkeit des Befehls 'time.sleep()' in meinem Quelltext.
1. Ich möchte über 'Python' deine .log-Datein meines Programms einmal die Woche sichern, indem ich die aktuelle '.log' in einen andern Ordner kopiere und die Quelldatein leere. Das klappt auch ohne Probleme. Nun habe ich zwischen dem Kopieren und dem Leren einen 'time.sleep()'-Befehl von 5 Sekunden gesetzt, da ein Kopiervorgang nicht binnen wenigen Millisekunden abgeschlossen ist. Ist das überhaupt notwenig, oder wartet 'Python' automatisch bis der Kopiervorgang abgeschlosen ist?
[...]
Source = Path + "/data.log"
Target = Path + "/Log_Data/data.log"
shutil.copy(Source, Target)
time.sleep(5)
data_out = open("data.log", "w")
data_out.write("")
data_out.close()
[...]
2. Die selbe Frage stellt sich mir bei einer 'Shell' die per 'os.system()' ausgeführt werden soll. Bevor wieder Stimmen laut werden: "Benutze bloß kein 'os.system', dafür gibt es 'subprocess'. Sogar in der offizellen Dokumentation von 'Python' wird davon abgeradet! [...]". Ich habe noch nicht rausgefunden, bzw. mich damit beschäftigt, wie ich folgenden Quelltext mit 'subprocess' ausführe. Bin aber für jede Hilfe dankbar.
Zweck der 'Shell' ist es zwei Funksteckdosen an/aus zu schalten. Ich weiß halt nur nicht ob der Sender eine Art 'Cooldown' hat oder ob es bei zwei direkt auseinander folgenden Befehlen zu Störungen kommt.
#!/bin/bash
sudo Software/raspberry-remote/send 11101 2 1
sleep (5)
sudo Software/raspberry-remote/send 11101 1 0
exit 0
3. Wie ist die Priorisierung bei 'Cronjobs'? Ich möchte minütlich zwei .py-Skripte ausführen die wie in Punkt 2 ggf. einen Befehl an die Funksteckdosen senden. Werden beide Skripte gleichzeitig oder nacheinander, nach Beendigung des vorherigen Skripts augeführt? Ich frage um im schlimmsten Fall, was wie wir wissen immer eintritt, einen gleicxhzeitigen 'send'-Befehl zu vermeiden.
Vielen Dank im Voraus.
Gruß Kai