python - ejemplos - django
Obtenga rutas absolutas de todos los archivos en un directorio (7)
Puede usar os.path.abspath()
para convertir rutas relativas en rutas absolutas:
file_paths = []
for folder, subs, files in os.walk(rootdir):
for filename in files:
file_paths.append(os.path.abspath(os.path.join(folder, filename)))
¿Cómo obtengo las rutas absolutas de todos los archivos en un directorio que podría tener muchas subcarpetas en Python?
Sé que os.walk()
recursivamente me da una lista de directorios y archivos, pero parece que no me da lo que quiero.
Quería mantener los detalles del subdirectorio y no los archivos y solo quería subdividirlos con un archivo xml en ellos. Puedo hacerlo de esta manera:
for rootDirectory, subDirectories, files in os.walk(eventDirectory):
for subDirectory in subDirectories:
absSubDir = os.path.join(rootDirectory, subDirectory)
if len(glob.glob(os.path.join(absSubDir, "*.xml"))) == 1:
print "Parsing information in " + absSubDir
Si tiene Python 3.4 o posterior, puede usar pathlib
(o un backport de terceros si tiene una versión anterior de Python):
import pathlib
for filepath in pathlib.Path(directory).glob(''**/*''):
print(filepath.absolute())
Tratar:
import os
for root, dirs, files in os.walk(''.''):
for file in files:
p=os.path.join(root,file)
print p
print os.path.abspath(p)
print
os.path.abspath
se asegura de que una ruta sea absoluta. Use la siguiente función auxiliar:
import os
def absoluteFilePaths(directory):
for dirpath,_,filenames in os.walk(directory):
for f in filenames:
yield os.path.abspath(os.path.join(dirpath, f))
from glob import glob
def absolute_file_paths(directory):
return glob(join(directory, "**"))
import os
for root, dirs, files in os.walk(os.path.abspath("../path/to/dir/")):
for file in files:
print os.path.join(root, file)