Heim > Artikel > Backend-Entwicklung > Python ruft Statistiken zur Ordnergröße ab
Python OS-Datei-/Verzeichnismethode
Zunächst werde ich einige verwendete Funktionen vorstellen und zum leichteren Verständnis eine kleine Demo schreiben.
os.getcwd()
Gibt den aktuellen Pfad zurück.
os.listdir (Pfad)
Gibt die Ordner und Dateien unter dem aktuellen Pfad zurück (keine Rekursion bis zur zweiten Ebene).
os.path.join()
Die Methode „join()“ wird verwendet, um Elemente in der Sequenz mit angegebenen Zeichen zu verbinden, um eine neue Zeichenfolge zu generieren.
os.path ermöglicht es join(), es als Pfad zu erkennen und '' '/' entsprechend dem System automatisch zu vervollständigen.
os.path.getsize(path) gibt die Dateigröße zurück
# -*- encoding: utf-8 -*_ import os path = os.getcwd() # 获取当前路径 for dirs in os.listdir(path): print dirs file_name = "路径补齐.txt" path = os.path.join(path,file_name) print path size = os.path.getsize("E:\PythonEclipse\PythonStudy\os.listdir\listdirs.py") print size
Ausgabeergebnis:
A B C file.txt listdirs.py E:\PythonEclipse\PythonStudy\os.listdir\路径补齐.txtA 303
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
top – jeder Ordner im Stammverzeichnis (einschließlich sich selbst). ), wodurch ein 3-Tupel (Verzeichnispfad, Verzeichnisnamen, Dateinamen) [Ordnerpfad, Ordnername, Dateiname] generiert wird.
topdown – optional, wenn True oder nicht angegeben, wird das 3-Tupel eines Verzeichnisses vor dem 3-Tupel eines seiner Unterordner generiert (Verzeichnisse von oben nach unten). Wenn topdown False ist, wird das 3-Tupel eines Verzeichnisses nach dem 3-Tupel eines seiner Unterordner generiert (Verzeichnisse von unten nach oben).
onerror – optional, ist eine Funktion, die mit einem Parameter aufgerufen wird, einer OSError-Instanz. Nachdem Sie diesen Fehler gemeldet haben, setzen Sie den Rundgang fort oder lösen Sie eine Ausnahme aus, um den Rundgang zu beenden.
followlinks – Wenn auf true gesetzt, wird über Softlinks auf das Verzeichnis zugegriffen.
# -*- encoding: utf-8 -*_ import os for root, dirs, filename in os.walk(os.getcwd()): print root print dirs print filename
Ausgabeergebnisse:
E:\PythonEclipse\PythonStudy\os.listdir ['A', 'B', 'C'] ['file.txt', 'listdirs.py'] E:\PythonEclipse\PythonStudy\os.listdir\A [] [] E:\PythonEclipse\PythonStudy\os.listdir\B [] ['file.txt'] E:\PythonEclipse\PythonStudy\os.listdir\C [] []
Ideen zur Funktionsimplementierung:
Wenn Sie die Größe des Ordners ermitteln möchten, durchsuchen Sie einfach alle Dateien unter der Datei und ermitteln Sie die Summe der Größen aller Dateien.
Was hier implementiert ist, ist das aktuelle Verzeichnis. Die Ordnergröße umfasst nicht die Dateigröße unter der aktuellen Datei.
Sie müssen auf das Codierungsformat von Python achten.
# -*- encoding: utf-8 -*- import os rootdir = os.getcwd() #获取当前路径 rootdir = rootdir.decode('gbk') x = u'统计文件大小.csv' f = open(os.path.join(rootdir,x), "w+") for dirname in os.listdir(rootdir): #获取二级目录所有文件夹与文件 Dir = os.path.join(rootdir, dirname) #路径补齐 count = 0 if (os.path.isdir(Dir)): #判断是否为目录 for r, ds, files in os.walk(Dir): #遍历目录下所有文件根,目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名称】 for file in files: #遍历所有文件 size = os.path.getsize(os.path.join(r, file)) #获取文件大小 count += size if ((count/1024.0/1024.0) < 1024): print Dir +'\t' + '%.2f'% (count/1024.0/1024.0)+'MB' f.write(Dir.encode("gbk") +','+ '%.2f'% (count/1024.0/1024.0)+'MB' + '\n') else: print Dir + '\t' + '%.2f' % (count / 1024.0 / 1024.0/1024.0) + 'GB' f.write(Dir.encode("gbk") + ',' + '%.2f' % (count / 1024.0 / 1024.0/1024.0) + 'GB' + '\n') else: continue f.close()
Weitere Artikel zum Abrufen von Statistiken zur Ordnergröße durch Pyhon finden Sie auf der chinesischen PHP-Website!