Buscar todos los archivos en un directorio
¿Cómo podemos encontrar un archivo en la computadora con Python? Hay un montón de manera de hacerlo, vamos a empezar con la primera.
usando so.listdir ()
solo tiene que importar el módulo del sistema operativo y puede usar el sistema operativo.función listdir para poder ver todo el archivo en un directorio. En Python 3, si no pone nada como argumento en el paréntesis redondo, le devolverá una lista de todos los archivos y carpetas del directorio actual., En Pyton 2 debes usar el sistema operativo.listdir(«.») para ver los archivos en el directorio actual.
# First tryimport osf_list = os.listdir()
Si desea un directorio en particular, debe poner la ruta como argumento.
os.listdir("C:\\documents")
en este ejemplo, puede ver los archivos en la carpeta documentos del disco duro c:
os.listdir (): obtener archivos en el directorio actual (Python 3)
la forma más sencilla de tener el archivo en el directorio actual en Python 3 es esta., Es muy simple, usa el módulo os y la función listdir() y tendrás el archivo en ese dir (y las carpetas eventuales que están en el dir, pero no tendrás el archivo en el subdirectorio, para eso puedes usar walk – hablaré de ello más adelante).
import osarr = os.listdir()arr
obteniendo el nombre completo de la ruta
como notó, no tiene la ruta completa del archivo en el código anterior. Si necesita tener la ruta absoluta, puede usar otra función del sistema operativo.módulo de ruta llamado _getfullpathname, poniendo el archivo que se obtiene desde el sistema operativo.listdir() como argumento., Hay otras formas de tener la ruta completa, como comprobaremos más adelante (reemplazé, como sugirió mexmex, _getfullpathname con abspath).
obtener el nombre completo de la ruta de un tipo de archivo en todos los subdirectorios con walk
encuentro esto muy útil para encontrar cosas en muchos directorios y me ayudó a encontrar un archivo sobre el que no recuerdo el nombre:
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 (): get files in current dir (Python 2)
import osarr = os.listdir('.')arr# output:
para subir al árbol de directorios
# method 1x = os.listdir('..')# method 2x = os.listdir('/')
get files: os.,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.pie(‘.’) – directorio actual
import osarr = next(os.walk('.'))arr# output:
glob module-todos los archivos
import globprint(glob.glob("*"))# output:
next(os.pie(‘.’)) y os.camino.join (‘dir’,’file’)
next (os.walk (‘F:\’) – obtenga la comprensión completa de la lista de rutas
# output#
os.walk-get full path-todos los archivos en sub dirs
x = x# output#
os.,listdir() – obtener solo archivos txt
arr_txt = print(arr_txt)# output:
glob – obtener solo archivos txt
import globx = glob.glob("*.txt")x# output:
usar glob para obtener la ruta completa de los archivos
Si necesito la ruta absoluta de los archivos:
otro uso de glob
Si todos los archivos en el directorio:
x = glob.glob("*")
usando os.camino.isfile para evitar directorios en la lista *
Usando pathlib desde (Python 3.4)
si desea usar comprensión de Lista
flist =
obtenga todos y solo los archivos con So.,walk
obtener solo archivos con next y caminar en un directorio
import osx = next(os.walk('F://python'))print(x)################################### output:
obtener solo directorios con next y caminar en un directorio
import osnext(os.walk('F://python')) # for the current dir use ('.')# output:
**obtener todos los nombres de subdirectorios con walk
os.scandir () desde python 3.5 en
Ex. 1: ¿cuántos archivos hay en los subdirectorios?
en este ejemplo, buscamos el número de archivos que están incluidos en todo el directorio y sus subdirectorios.
Ex.2: ¿Cómo copiar todos los archivos de un directorio a otro?,
un script para ordenar en tu ordenador encontrando todos los archivos de un tipo (por defecto: pptx) y copiándolos en una nueva carpeta.
Ex.3: Cómo obtener todos los archivos en un archivo txt
en caso de que desee crear un archivo txt con todos los nombres de archivo:
ejemplo: crear un txt con todos los nombres de archivos en su disco duro
todo el archivo de C:\ \ En un archivo de texto
Esta es una versión más corta del código anterior. Cambie la carpeta donde comenzar a encontrar los archivos si necesita comenzar desde otra posición., Este código genera un archivo de texto de 50 mb en mi computadora con algo menos de 500.000 líneas con archivos con la ruta completa.
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")