2016-11-05 4 views

Antwort

0

Ich würde vorschlagen, os.listdir() zu verwenden, und dann prüfen, ob der Dateiname eine Erweiterung hat (überprüfen Sie, ob es einen Punkt in einem Dateinamen gibt). Sobald Sie alle Dateinamen ohne Punkte (dh ohne Erweiterung) erhalten, stellen Sie sicher, dass der Dateiname nicht tatsächlich Verzeichnisname ist, und das ist es.

1

Klingt wie, was Sie interessiert, ist

[f for f in next(os.walk(folder))[2] if '.' not in f] 
+0

Es sieht gut aus. Sie könnten 'import os' hinzufügen und es in eine Methode schreiben, um es bereit zu machen. –

1

Sie os.path.splitext verwenden können, um zu überprüfen, ob eine Datei eine Erweiterung hat oder nicht.

Sehen Sie diese Beispiele:

import os 

os.path.splitext("foo.ext") 
=> ('foo', '.ext') 

os.path.splitext("foo") 
=> ('foo', '') 

So können Sie das tun:

import os 

path = "path/to/files" 
dirs = os.listdir(path) 

for path in dirs: 
    if not os.path.splitext(path)[1]: 
     print(path) 

Aber, Vorsicht vor "versteckten" Dateien, deren Name mit einem Punkt beginnt, dh .:“Bashrc ".

Sie können auch im Dateinamen für die Existenz eines Punktes überprüfen:

for path in dirs: 
    if "." not in path: 
     print(path) 
+0

Vielen Dank für Ihre Antwort, es war genau das, was ich wollte. – philippos

0

Sie die glob module verwenden könnte und alle Dateien mit Erweiterungen filtern:

import glob 

for filename in (filename for filename in glob.iglob('*') if '.' not in filename): 
    print(filename) 
Verwandte Themen