Encontre todos os arquivos em um diretório
Como podemos encontrar um arquivo no computador com o Python? Há muita maneira de o fazer, vamos começar com o primeiro.
usando os.listdir ()
você só tem que importar o módulo de SO e você pode usar o SO.função listdir para ser capaz de ver todo o arquivo em um diretório. No Python 3, Se você não colocar nada como argumento no parêntesis redondo, ele irá devolver-lhe uma lista de todos os arquivos e pasta do diretório atual., Em Pyton 2 deve usar o sistema operativo.listdir (“.”) para ver os arquivos no diretório atual.
# First tryimport osf_list = os.listdir()
Se quiser uma pasta em particular, deverá colocar a localização como argumento.
os.listdir("C:\\documents")
neste exemplo, você pode olhar para os arquivos nas pastas documentos do disco rígido C:
os.listdir (): obter os ficheiros na pasta actual (Python 3)
a forma mais simples de ter o ficheiro na pasta actual do Python 3 é esta., É muito simples, use o módulo os e a função listdir () e você terá o arquivo nessa pasta (e eventuais pastas que estão na pasta dir, mas você não terá o arquivo no subdiretório, para que você possa usar walk – eu vou falar sobre isso mais tarde).
import osarr = os.listdir()arr
obtendo o nome completo do caminho
como notou, não tem o caminho completo do ficheiro no código acima. Se você precisa ter o caminho absoluto, você pode usar outra função do so.módulo de localização chamado _metfullpathname, colocando o ficheiro que obtém do sistema operacional.listdir () como argumento., Existem outras formas de ter o caminho completo, como iremos verificar mais tarde (eu substituí, como sugerido por mexmex, _patnome completo com abspath).
obtenha o nome completo do caminho de um tipo de ficheiro em todas as sub-pastas com walk
considero isto muito útil para encontrar coisas em muitas pastas e ajudou-me a encontrar um ficheiro sobre o qual não me lembrava do 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(): obter arquivos no diretório atual (Python 2)
import osarr = os.listdir('.')arr# output:
Para subir na árvore do diretório
# method 1x = os.listdir('..')# method 2x = os.listdir('/')
obter arquivos: sistema operacional.,listdir () in a particular directory (Python 2 and 3)
import osarr = os.listdir('F:\\python')arr# output:
Get files of a particular subdirectory with os.listdir ()
import osx = os.listdir("./content")
os.PE(‘.’) – current directory
import osarr = next(os.walk('.'))arr# output:
glob module-all files
import globprint(glob.glob("*"))# output:
next(os.PE(‘.) e os.caminho.join (‘dir’,’file’)
next (os.walk (‘F:\’) – get the full path – list comprehension
# output#
os.walk-get full path-all files in sub dirs
x = x# output#
os.,listdir() – obtém apenas arquivos txt
arr_txt = print(arr_txt)# output:
– glob apenas obter arquivos txt
import globx = glob.glob("*.txt")x# output:
Usando glob para obter o caminho completo dos arquivos
Se eu precisar o caminho absoluto dos arquivos:
Outro uso do xpto
Se eu quiser que todos os arquivos no diretório:
x = glob.glob("*")
Usando o sistema operacional.caminho.isfile para evitar pastas na lista *
Usando o pathlib de (Python 3.4)
Se quiser usar a compreensão da lista
flist =
obtenha todos e apenas os ficheiros com SO.,pé
somente arquivos com o próximo e andar em um diretório
import osx = next(os.walk('F://python'))print(x)################################### output:
apenas os directórios com o seguinte e pé em um diretório
import osnext(os.walk('F://python')) # for the current dir use ('.')# output:
**Obter todas as subdir nomes com pé
os.scandir () do python 3.5 em
Ex. 1: quantos arquivos existem nos subdiretórios?
neste exemplo, nós procuramos o número de arquivos que estão incluídos em todo o diretório e seus subdiretórios.
Ex.2: Como copiar todos os arquivos de uma dir para outra?,
um programa para fazer a ordem no seu computador encontrar todos os ficheiros de um tipo (por omissão: pptx) e copiá-los numa nova pasta.
Ex.3: Como obter todos os arquivos em um arquivo txt
No caso de você querer criar um arquivo txt com todos os nomes de arquivo:
Exemplo: criar um txt com todos os nomes de arquivos em sua unidade de disco rígido
Todos os arquivos de C:\\ em um arquivo de texto
Esta é uma versão mais curta do código anterior. Mude a pasta onde começar a encontrar os arquivos se você precisar começar de outra posição., Este código gera um arquivo de texto de 50 mb no meu computador com algo menos de 500.000 linhas com arquivos com o caminho 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")