Ich versuche, ein Programm zu schreiben, das ein Befehlszeilenargument verwendet, den durch das Argument bereitgestellten Verzeichnisbaum durchsucht und eine Liste aller Dateien im Verzeichnis erstellt und sortiert nach Länge der Dateien.Abrufen von Dateien aus Verzeichnisargument, Sortieren nach Größe
Ich bin nicht viel von einem Skript-Kerl - aber das ist, was ich habe und es funktioniert nicht:
import sys
import os
from os.path import getsize
file_list = []
#Get dirpath
dirpath = os.path.abspath(sys.argv[0])
if os.path.isdir(dirpath):
#Get all entries in the directory
for root, dirs, files in os.walk(dirpath):
for name in files:
file_list.append(name)
file_list = sorted(file_list, key=getsize)
for item in file_list:
sys.stdout.write(str(file) + '\n')
else:
print "not found"
jemand mich in die richtige Richtung zeigen kann?
ich schlage vor, die Hilfe für die Funktion zu lesen [ 'o s.walk'] (http://docs.python.org/2/library/os.html#os.walk). Es scheint die richtige Wahl für den Umgang mit Verzeichnisbäumen zu sein. Wenn Sie sich das Beispiel für diese Funktion ansehen, werden Sie sehen, dass Sie auf einem guten Weg sind ... – koffein
Ich denke, Ihre vorletzte Zeile ist nicht notwendig. tatsächlich verursacht diese Linie einen Fehler ... – koffein
@koffein Ich habe meinen Code aktualisiert, aber es gibt mir immer noch einen Fehler. –