Trova tutti i file in una directory

Come possiamo trovare un file su un computer con Python? Ci sono molti modi per farlo, iniziamo con il primo.

Utilizzo del sistema operativo.listdir ()

Devi solo importare il modulo os e puoi usare il sistema operativo.funzione listdir per poter vedere tutto il file in una directory. In Python 3, se non metti nulla come argomento nella parentesi rotonda, ti restituirà un elenco di tutti i file e le cartelle della directory corrente., In Pyton 2 è necessario utilizzare il sistema operativo.listdir(“.”) per vedere i file nella directory corrente.

# First tryimport osf_list = os.listdir()

Se si desidera una particolare directory è necessario inserire il percorso come argomento.

os.listdir("C:\\documents")

In questo esempio, è possibile guardare i file nella cartella documenti del disco rigido C:

os.listdir (): ottieni file nella directory corrente (Python 3)

Il modo più semplice per avere il file nella directory corrente in Python 3 è questo., È davvero semplice, usa il modulo os e la funzione listdir () e avrai il file in quella dir (e le eventuali cartelle che si trovano nella dir, ma non avrai il file nella sottodirectory, per questo puoi usare walk – ne parlerò più tardi).

import osarr = os.listdir()arr

Ottenere il nome completo del percorso

Come hai notato, non hai il percorso completo del file nel codice sopra. Se è necessario avere il percorso assoluto, è possibile utilizzare un’altra funzione del sistema operativo.modulo percorso chiamato _getfullpathname, mettendo il file che si ottiene dal sistema operativo.listdir () come argomento., Ci sono altri modi per avere il percorso completo, come controlleremo in seguito (ho sostituito, come suggerito da mexmex, _getfullpathname con abspath).

Ottieni il nome completo del percorso di un tipo di file in tutte le sottodirectory con walk

Lo trovo molto utile per trovare cose in molte directory e mi ha aiutato a trovare un file di cui non ricordavo il nome:

import osthisdir = os.getcwd()for r, d, f in os.walk(thisdir): for file in f: if ".docx" in file: print(os.path.join(r, file))

os.listdir (): ottieni i file nella directory corrente (Python 2)

import osarr = os.listdir('.')arr# output: 

Per salire nell’albero delle directory

# method 1x = os.listdir('..')# method 2x = os.listdir('/')

ottieni file: os.,listdir () in una particolare directory (Python 2 e 3)

import osarr = os.listdir('F:\\python')arr# output: 

Ottenere i file di una particolare sottodirectory con il sistema operativo.listdir ()

import osx = os.listdir("./content")

os.piedi(‘.’)- directory corrente

import osarr = next(os.walk('.'))arr# output: 

modulo glob-tutti i file

import globprint(glob.glob("*"))# output: 

successivo(os.piedi(‘.’)) e os.percorso.per maggiori informazioni clicca qui.walk (‘F:’) – ottenere il percorso completo-lista comprensione

# output# 

os.walk-get full path-tutti i file in sub dirs

x = x# output# 

os.,listdir() – prendi solo il file txt

arr_txt = print(arr_txt)# output: 

glob – ottenere solo il file txt

import globx = glob.glob("*.txt")x# output: 

l’Utilizzo di glob per ottenere il percorso completo del file

Se ho bisogno il percorso assoluto del file:

l’utilizzo di Altri glob

Se io voglio che tutti i file nella directory:

x = glob.glob("*")

l’Utilizzo di os.percorso.isfile per evitare le directory nella lista *

Utilizzando pathlib from (Python 3.4)

Se si desidera utilizzare la comprensione della lista

flist = 

Ottenere tutti e solo i file con sistema operativo.,camminare

Ottenere solo i file con next e camminare in una directory

import osx = next(os.walk('F://python'))print(x)################################### output: 

Ottenere solo le directory con next e camminare in una directory

import osnext(os.walk('F://python')) # for the current dir use ('.')# output: 

**Ottenere tutti i nomi sottodir con walk

os.scandir () da python 3.5 su

Ex. 1: Quanti file ci sono nelle sottodirectory?

In questo esempio, cerchiamo il numero di file che sono inclusi in tutta la directory e le sue sottodirectory.

Es.2: Come copiare tutti i file da una dir a un’altra?,

Uno script per fare ordine nel computer trovare tutti i file di un tipo (default: pptx) e copiarli in una nuova cartella.

Es.3: Come ottenere tutti i file in un file txt

nel caso In cui si desidera creare un file txt con tutti i nomi dei file:

Esempio: creare un txt con tutti i nomi di file nel vostro hard disk

Tutti i file di C:\\ in un file di testo

Questa è una versione più breve del precedente codice. Cambia la cartella in cui iniziare a trovare i file se devi iniziare da un’altra posizione., Questo codice genera un file di testo di 50 mb sul mio computer con qualcosa di meno di 500.000 righe con file con il percorso completo.

import oswith open("file.txt", "w", encoding="utf-8") as filewrite: for r, d, f in os.walk("C:\\"): for file in f: filewrite.write(f"{r + file}\n")

Alla ricerca di un tipo di file in tutti i dischi rigidi con sistema operativo.camminare

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *