Πώς μπορώ να απαριθμήσω όλα τα αρχεία ενός καταλόγου στην Python και να τα προσθέσω σε μια "λίστα";
[os.listdir()
][1] θα σας δώσει όλα όσα βρίσκονται σε έναν κατάλογο - αρχεία και καταλόγους.
Αν θέλετε μόνο αρχεία, μπορείτε είτε να το φιλτράρετε χρησιμοποιώντας το os.path
:
from os import listdir
from os.path import isfile, join
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
ή θα μπορούσατε να χρησιμοποιήσετε το [os.walk()
][2] το οποίο θα δώσει δύο λίστες για κάθε κατάλογο που επισκέπτεται - χωρίζοντας σε αρχεία και καταλόγους για εσάς. Αν θέλετε μόνο τον κορυφαίο κατάλογο μπορείτε απλά να διακόψετε την πρώτη φορά που θα αποδώσει
from os import walk
f = []
for (dirpath, dirnames, filenames) in walk(mypath):
f.extend(filenames)
break
[1]: https://docs.python.org/2/library/os.html#os.listdir "os.listdir", [2]: https://docs.python.org/2/library/os.html#os.walk "os.walk",
Προτιμώ να χρησιμοποιώ την ενότητα glob
, καθώς πραγματοποιεί αντιστοίχιση προτύπων και επέκταση.
import glob
print(glob.glob("/home/adam/*.txt"))
Θα επιστρέψει μια λίστα με τα αρχεία που αναζητήθηκαν:
['/home/adam/file1.txt', '/home/adam/file2.txt', .... ]
import os
os.listdir("somedirectory")
θα επιστρέψει μια λίστα με όλα τα αρχεία και τους καταλόγους στο "somedirectory".