Hallo zusammen,
trotz studieren der Bücher Python Paxisbuch Addison Wesley und GE-Packt vom Mtip Verlag scheinen mir die Möglichkeiten aus zu gehen.
ich möchte gerne mir ein kleines Tool in Python zu schreiben, was mir das löschen von Partitionen erleichtert.
das ganze soll so ablaufen das meiner einer eine Info (in einer GUI) bekommt welche Partitionen gemountet sind - und ich wähle diese dann aus die gelöscht werden soll.
dann fängt das Programm 'shred' die Partition voll zu schreiben - zum Schluss mache ich noch ein makefs ext3 .... und fertig.
ich scheitere leider am auslesen der Mountpoints ... hat einer einen Tipp für mich...
Wahrscheinlich sollte ich so etwas eher in einem Bashscript unterbringen?
Grüße und danke!
mountpoints abfrage
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Wieso nutzt Du nicht einfach mount und parst Die Ausgabe? (Oder ggf. einfach die /etc/mtab)
Wobei Du eine gemountete Partition ja kaum löschen können wirst ... oder brauchst Du die Info eben zum "unmounten"?
Und es gibt eigentlich keinen Grund ein Bash-Script da vorzuziehen, oder zumindest sehe ich da keinen Ok, per dialog-Varianten kann man dort auch etwas GUI basteln, aber so richtig flexibel ist man dort damit ja nicht.
Wobei Du eine gemountete Partition ja kaum löschen können wirst ... oder brauchst Du die Info eben zum "unmounten"?
Und es gibt eigentlich keinen Grund ein Bash-Script da vorzuziehen, oder zumindest sehe ich da keinen Ok, per dialog-Varianten kann man dort auch etwas GUI basteln, aber so richtig flexibel ist man dort damit ja nicht.
-
- User
- Beiträge: 13
- Registriert: Sonntag 14. Dezember 2008, 15:24
Hallo,
danke für die Atwort....
1. ja ich benötige die Informationen um Sie sichtbar zu machen...
(damit ich weiß von welcher ich den Inhalt löschen kann)
wahrscheinlich Offtopic - (sorry newbie)
wie kann ich in der py commandozeile nach mount suchen?
help (mount)
danke für die Atwort....
1. ja ich benötige die Informationen um Sie sichtbar zu machen...
(damit ich weiß von welcher ich den Inhalt löschen kann)
wahrscheinlich Offtopic - (sorry newbie)
wie kann ich in der py commandozeile nach mount suchen?
help (mount)
Code: Alles auswählen
>>> help (mount)
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
help (mount)
NameError: name 'mount' is not defined
Da brauchst du nicht nach "mount" suchen, weil "mount" keine Python-Funktion ist.unlimitopen hat geschrieben:wahrscheinlich Offtopic - (sorry newbie)
wie kann ich in der py commandozeile nach mount suchen?
Du musst das Linux-Kommando "mount" aus einem Python-Programm heraus aufrufen. Such mal nach "Popen" ...
-
- User
- Beiträge: 13
- Registriert: Sonntag 14. Dezember 2008, 15:24
Hallo und danke!
bin weitergekommen, suche gerade die passagen im Buch warum ich nicht darauf gekommen bin?
popen ist die Lösung ....
jetzt nur noch das ganze passend formatieren und weiter gehts...
mit popen kann ich dann auch shred ansteuern
Vielen Dank!
bin weitergekommen, suche gerade die passagen im Buch warum ich nicht darauf gekommen bin?
popen ist die Lösung ....
Code: Alles auswählen
#! /usr/bin/python
import os
f=os.popen("mount -l")
for i in f.readlines():
print "myresult:",i,
mit popen kann ich dann auch shred ansteuern
Vielen Dank!
Omg, dass ist keine Lösung das ist wovor man dich gerade gewarnt hat. Schau dir mal Subprocess an.
-
- User
- Beiträge: 13
- Registriert: Sonntag 14. Dezember 2008, 15:24
da war ich wohl zu voreilig....... bzw. zu langsam.
ich nehm die Lösung zurück und kümmere mich weiter!
mal sehen ob ich das mit subprocess ohne hilfe hinbekomme.
grüße und mein dank der warnungen!
ich nehm die Lösung zurück und kümmere mich weiter!
mal sehen ob ich das mit subprocess ohne hilfe hinbekomme.
grüße und mein dank der warnungen!
-
- User
- Beiträge: 13
- Registriert: Sonntag 14. Dezember 2008, 15:24
soo. lustig finde ich das gar nicht
ist nun meine Lösung...
könntet ihr mir bitte das einmal erläutern?
output wird als variable für den späteren Print definiert.
p ist klar, aber
communicate()[0]
vielen Dank! schönen Abend
Code: Alles auswählen
#!/usr/bin/python
import subprocess
p = subprocess.Popen(["mount", "-l"], stdout=subprocess.PIPE)
output = p.communicate()[0]
print output
könntet ihr mir bitte das einmal erläutern?
Code: Alles auswählen
output = p.communicate()[0
p ist klar, aber
communicate()[0]
vielen Dank! schönen Abend
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Hehe ... also ich schonunlimitopen hat geschrieben:soo. lustig finde ich das gar nicht
Sag mal wo haste das denn alles her? Guckst Du auch mal in die Doku? Da steht doch alles drin:könntet ihr mir bitte das einmal erläutern?output wird als variable für den späteren Print definiert.Code: Alles auswählen
output = p.communicate()[0
p ist klar, aber
communicate()[0]
Du bekommst also ein Tupel zurück. Der erste Wert ist das, was der Prozess auf stdout geschrieben hat, der zweite enthält ggf. Fehlerbenachrichtigungen von stderr. Durch die [0] hinter dem Methodenaufruf in Deinem Code selektierst Du einfach den Text, der auf stdout geschrieben wurde.Python Doku hat geschrieben: Popen.communicate(input=None)
Interact with process: Send data to stdin. Read data from stdout and stderr, until end-of-file is reached. Wait for process to terminate. The optional input argument should be a string to be sent to the child process, or None, if no data should be sent to the child.
communicate() returns a tuple (stdout, stderr).
Note that if you want to send data to the process’s stdin, you need to create the Popen object with stdin=PIPE. Similarly, to get anything other than None in the result tuple, you need to give stdout=PIPE and/or stderr=PIPE too.
-
- User
- Beiträge: 13
- Registriert: Sonntag 14. Dezember 2008, 15:24
für die Info's
Grüße
Grüße