Seite 1 von 1
Ausgabe umleiten in Datei in Python3
Verfasst: Dienstag 9. Mai 2023, 17:17
von Knuffi
Hallo Leute,
Printausgaben in eine .txt umzuleiten ist kein Problem.
aber wie leite ich die Ausgabe von
pidof programmname
in eine Datei um?
Wer hat einen Tip.
Danke
Knuffi
Re: Ausgabe umleiten in Datei in Python3
Verfasst: Dienstag 9. Mai 2023, 17:22
von geraldfo
pidof programmname > datei
LG
Re: Ausgabe umleiten in Datei in Python3
Verfasst: Dienstag 9. Mai 2023, 17:41
von Knuffi
Danke
Habe auch probiert, kam keine Fehlermeldung. Nur habe ich diese Datei nirgends gefunden. Wo wird diese im Raspberry PI 3 abgespeichert.
Re: Ausgabe umleiten in Datei in Python3
Verfasst: Dienstag 9. Mai 2023, 17:46
von geraldfo
Ich gehe davon aus, dass du das Kommando in der Befehlszeile aufrufst.
In allen mir bekannten System wird datei im aktuellen Arbeitsverzeichnis abgelegt.
Achte darauf, dass eine gleichnamige Datei in diesem Verzeichnis noch nicht existiert. Sie würde sonst überschrieben werden.
Hat nichts mit Python zu tun.
Re: Ausgabe umleiten in Datei in Python3
Verfasst: Dienstag 9. Mai 2023, 17:51
von Knuffi
Ok. Danke mal daddeln was beim Raspberry 3 das Arbeitsverzeichnis ist, im Home/user ist nichts abgespeichert
Re: Ausgabe umleiten in Datei in Python3
Verfasst: Dienstag 9. Mai 2023, 17:55
von Knuffi
Alles klar, ich Pappnase der Pfad kommt vorher
pidof gnokii > /home/user/test.txt
Danke für die Hilfe.
Klasse
Re: Ausgabe umleiten in Datei in Python3
Verfasst: Mittwoch 10. Mai 2023, 10:41
von DeaD_EyE
Das hier ist ein Forum über Python, also gehe ich mal von aus, dass du mit Python die pid-Datei öffnen und irgendwas damit machen willst.
Da unter Linux so gut wie alles eine Datei ist, kommt man an die Namen der laufenden Programme ziemlich einfach.
Zu finden ist der Name in
/proc/<PID>/comm.
Wenn man das z.B. mit Python machen will:
Code: Alles auswählen
from pathlib import Path
def pidof(name: str) -> list[int]:
return [
int(match.parent.name)
for match in Path("/proc/").glob("*/comm")
if match.read_text().rstrip() == name
]
pidof(name="bash")
Re: Ausgabe umleiten in Datei in Python3
Verfasst: Mittwoch 10. Mai 2023, 11:21
von __blackjack__
Oder „cross platform“ mit dem `psutil`-Modul:
Code: Alles auswählen
#!/usr/bin/env python3
import psutil
def pidof(name):
return [
process.pid
for process in psutil.process_iter(["name"])
if process.info["name"] == name
]
def main():
print(pidof("apache2"))
if __name__ == "__main__":
main()
Re: Ausgabe umleiten in Datei in Python3
Verfasst: Mittwoch 10. Mai 2023, 12:17
von DeaD_EyE
Ja, das ist auf jeden Fall die bessere Lösung, da man sich selbst nicht um die Unterschiede des OS kümmern muss.