2012-04-12 6 views
0

IPython - Lesen von Dateien, speichern Sie die Dateinamen und den Zugriff auf diese Dateien

totalset = {} 

und extrahieren Sie die Dateinamen aus Ordner A, B, C, D durch

for file_name in (os.listdir(full_subdir_name)): 
    full_file_name = os.path.join(full_subdir_name, file_name) 

Jetzt bauen ich möchte etwas bauen Namensliste genannt, die alle Dateinamen enthält, und ich konnte in den Ordner über alle Dateien durchqueren:

for file in namelist[A]: 
    blabla... 

for file in namelist[B]: 
    blabla.. . 

Was shoul D ich tue?

Antwort

0

Sie sollten wahrscheinlich ein "Listenverständnis" verwenden. Hier ist ein Beispiel dafür, wie Sie es tun könnte:

lst_names = [os.path.join(full_subdir_name, n) for n in os.listdir(full_subdir_name)] 

Also dann würden Sie die volle namelist so etwas wie dieses bauen. Zuerst sollten Sie eine Namensliste erstellen.

# example using Windwows filenames 
# note that we use "raw strings" with r'' so the backslash will not be weird 
lst_names = [r'C:\Users\steveha\Desktop', r'C:\Users\steveha\Documents', r'C:\Users\steveha\Music'] 

# example using Mac or Linux filenames 
lst_names = ['/home/steveha/Desktop', '/home/steveha/Documents', '/home/steveha/Music' 

Sobald Sie lst_names mit Ihrem Namen einrichten, baut die vollen namelist:

namelist = {} 

for full_subdir_name in lst_names: 
    namelist[full_subdir_name] = [os.path.join(full_subdir_name, n) for n in os.listdir(full_subdir_name)] 

Ich persönlich denke, es wäre einfacher, mit einem kürzeren Variablennamen zu lesen als full_subdir_name:

namelist = {} 

for f in lst_names: 
    namelist[f] = [os.path.join(f, n) for n in os.listdir(f)] 
+0

Also, wie soll ich lst_name durchlaufen? – juju

+0

Ich habe einige Beispiele für die Einrichtung von 'lst_name' hinzugefügt. Macht das klar? – steveha

+0

Wenn Sie die Liste der Namen im Voraus nicht kennen und das Dateisystem scannen möchten, können Sie 'os.path.walk()' verwenden. – steveha

Verwandte Themen