glob

Quando si lavora con i file in Python, potrebbe essere necessario recuperare file basati su uno specifico pattern. Il modulo glob in Python fornisce funzioni per creare liste di file che corrispondono a determinati pattern, come caratteri jolly e supporto per la ricerca ricorsiva con "". Ecco come possiamo importare il modulo e usarlo:
import glob

txt_files = glob.glob('*.txt')     # Recupera tutti i file .txt nella directory corrente
print(txt_files, type(txt_files))  # Stampa la lista dei file .txt e il loro tipo
Supponiamo che nella directory corrente ci siano tre file di testo: file1.txt, file2.txt e file3.txt, l'output sarebbe:
['file1.txt', 'file2.txt', 'file3.txt'] <class 'list'>
La funzione glob prende un pattern come stringa e restituisce una lista di percorsi di file e directory che corrispondono al pattern.
Nel nostro esempio precedente, abbiamo usato il carattere jolly * che corrisponde a zero o più caratteri. Quindi, *.txt corrisponde a tutti i file che terminano con .txt.
Possiamo anche cercare file nelle sottodirectory in modo ricorsivo:
nested_files = glob.glob('**/*.txt', recursive=True)  # Recupera tutti i file .txt ricorsivamente
print(nested_files, type(nested_files))               # Stampa la lista dei file .txt e il loro tipo
Supponendo che, oltre ai nostri file precedenti, abbiamo anche una cartella folder1 nella directory corrente contenente file4.txt e file5.txt, l'output sarebbe:
['file1.txt', 'file2.txt', 'file3.txt', 'folder1/file4.txt', 'folder1/file5.txt'] <class 'list'>
Qui abbiamo usato ** nel nostro pattern. Questo simbolo in un pattern di percorso rappresenta tutti i file e zero o più directory e sottodirectory. Abbiamo anche utilizzato l'argomento recursive=True per permettere alla funzione di cercare nelle sottodirectory. Pertanto, '**/*.txt', recursive=True recupera tutti i file .txt dalla directory corrente e dalle sue sottodirectory.
Questo è un modo utile per gestire i percorsi dei file e automatizzare le operazioni sui file in Python.

Sfida: Trova i file .py

Come nuovo data scientist in una startup tecnologica, ti viene affidato il compito di organizzare tutti i file Python nel tuo progetto corrente. A causa della fretta delle ultime settimane, i file Python (.py) sono sparsi in tutta la directory corrente. Il tuo lavoro è creare un programma Python che utilizzi glob per elencare tutti i file Python (.py) presenti nella directory corrente. Tuttavia, poiché sei interessato solo ai nomi dei file e non alla loro posizione, l'output deve contenere solo i nomi dei file senza il percorso della directory.
Il programma non deve ricevere alcun input.
L'output del programma deve contenere i nomi dei file Python nella directory corrente, ciascun nome su una nuova riga. Non includere il percorso della directory nell'output. L'output deve essere ordinato alfabeticamente.
Input
Output
experiment.py file1.py file2.py main.py my_program.py
Nota che, poiché il programma viene eseguito nella directory corrente, l'output includerà anche il file main.py (che contiene il tuo programma).
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue