Freier Speicherplatz

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Hallo,

Gibt es eine schnelle Möglichkeit den freien Speicherplatz eines Laufwerks zu ermitteln? Ich arbeite mit Windows.

Danke
Harry
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Hallo!
Mit win32file.GetDiskFreeSpace oder win32file.GetDiskFreeSpaceEx aus den Windows Extensions.
Jan
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Danke dir Jan!

Harry
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Gibt es kein eingebautes Modul dafür??? Oder muß ich etwa ein "dir" parsen?!?!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Es reicht ja wenn du pywin32 verwendest ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Naja, ist aber auch ein zusätzlich zu installierendes Modul...

Warum ist das nicht schon eingebaut? Verstehe ich nicht so ganz... Ist ja jetzt nicht's sooo außergewöhnlich...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Kannst ja mal in Python-dev fragen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

jens hat geschrieben:Ist ja jetzt nicht's sooo außergewöhnlich...
Python ist cross-platform. Und unter Unix gibt es z.B. keine Laufwerke, nur mountpoints.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Naja, es gibt ja os.fork() auch nicht unter Windows und trotzdem ist es in Python. Davon mal abgesehen, gibt es unter Unix ja das Programm df, also lässt sich der freie Speicherplatz durchaus angeben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Joghurt hat geschrieben:Python ist cross-platform. Und unter Unix gibt es z.B. keine Laufwerke, nur mountpoints.
Also das kann ja wohl nicht wirklich der Grund sein... Linux nutzt ja auch Festplatten/Partitionen, da ist es auch ganz interressant zu wissen, wieviel Platz noch frei ist...

Naja, dann muß ich halt eine dir Ausgabe parsen :evil:

Gesagt getan:

Code: Alles auswählen

import os

def getFreeSpace( Laufwerk ):
    txt = os.popen( 'dir %s\\' % Laufwerk ).readlines()
    txt = txt[-1]
    txt = txt.split(",")[1]
    txt = txt.split("Bytes")[0]
    txt = "".join( txt.split(".") )
    return int( txt )

Bytes = getFreeSpace( "c:" )
print Bytes / 1024 / 1024, "MB frei"
BlackJack

jens hat geschrieben:Naja, ist aber auch ein zusätzlich zu installierendes Modul...

Warum ist das nicht schon eingebaut? Verstehe ich nicht so ganz... Ist ja jetzt nicht's sooo außergewöhnlich...
Also ich fänd's aussergewöhnlich. Warum sollte so viel windowsspezifisches in der Standard-Distribution drin sein? Das würde bedeuten, dass ich das auch runterladen müsste, wenn ich es auf Linux übersetze.

Und es gibt die Pythonpakete von ActiveState -- da ist pywin32 dabei.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Wenn man sich den "Global Module Index" anschaut, sind glaube ich am meisten MAC Module, dicht gefolgt von Linux und zuletzt Windows spezifische Module vorhanden. Ich hab's jetzt aber nicht nachgezählt! ;)

Wie dem auch sei, ich denke Python kann garnicht genug von Haus aus können! Cool wäre gestaffelte Binaries zum Download, also ein Python Lite/Medium/Full ;)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Also ich fänd's aussergewöhnlich. Warum sollte so viel windowsspezifisches in der Standard-Distribution drin sein?
Wieso ist bei dir die Bestimmung des freien Speicherplatzes bei dir so Windowsspezifisch? Es gibt ja bei Linux das Tool df in Standardumfang (okay, fast immer), das dir sowas anzeigt. Okay, meist ist es nicht so wichtig, da APT sowieso dort installiert wo es meint das es passt, also meist /usr, aber es ist oft gut zu wissen wie viel Platz auf /home noch ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

Es ging nicht um eine Funktion um den freien Plattenplatz anzuzeigen, sondern um pywin32 als Modul in der Standard-Distri. Und pywin32 finde ich ist ziemlich windowsspezifisch. ;-)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

BlackJack hat geschrieben:Es ging nicht um eine Funktion um den freien Plattenplatz anzuzeigen, sondern um pywin32 als Modul in der Standard-Distri. Und pywin32 finde ich ist ziemlich windowsspezifisch. ;-)
Also eigentlich wollte ich nur ein "Ding" haben um den freien Plattenplatz in Bytes zu ermitteln... Wie das geschied, ob mit pywin32, ist mir völlig egal ;)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Es ging nicht um eine Funktion um den freien Plattenplatz anzuzeigen, sondern um pywin32 als Modul in der Standard-Distri. Und pywin32 finde ich ist ziemlich windowsspezifisch. ;-)
Nein, ich würde das eher so sehen, dass die Speicherplatzermittlung ins C os Modul für Windows rein kommt, da braucht man auch kein pywin32, sondern das ruft halt die API Funktion direkt auf.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Du hast doch da Erfahrung... Ist es möglich, nur mit den Standart Modulen, einen API Aufruf zu machen und so den Speicherplatz zu ermitteln, oder ist das ohne Zusatzmodulen nicht möglich?
Ist zwar auch sehr umständlich, aber schöner als die DIR-Ausgabe zu parsen...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

jens hat geschrieben:Du hast doch da Erfahrung...
Wieso gerade ich? Also soo viel Erfahung habe ich auch wieder nicht.
jens hat geschrieben:Ist es möglich, nur mit den Standart Modulen, einen API Aufruf zu machen und so den Speicherplatz zu ermitteln, oder ist das ohne Zusatzmodulen nicht möglich?
Ich könnte mir denken, dass man GetFreeDiskSpaceEx irgendwie per rundll32.exe aufrufen könnte. ABer es geht auf jeden fall mit ctypes, oder mit WMI, das aber pywin32 braucht.
Hier noch eine andere Lösung... aber pywin32 oder ctypes brauchst du sowieso. Alternativ ein kleines C Wrapper Modul.
jens hat geschrieben:Ist zwar auch sehr umständlich, aber schöner als die DIR-Ausgabe zu parsen...
Durchaus.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Aha ich dachte das man an DLL Geschichten schon mit Boardmitteln lösen könnte... Ansonsten, gibt es mit Sicherheit auch fertige Module, somit erübricht siche es, etwas selber zu bauen...

Naja, ich denke ich fahre mit dem DIR-Geschichte somit ganz gut :?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

jens hat geschrieben:Aha ich dachte das man an DLL Geschichten schon mit Boardmitteln lösen könnte... Ansonsten, gibt es mit Sicherheit auch fertige Module, somit erübricht siche es, etwas selber zu bauen...
Also ein verschlanktes ctypes mitzuliefern würde ich jetzt als so tragisch empfinden.

Ist natürlich etwas doof, aber da kann man nix machen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten