Si tengo un archivo abierto, ¿hay una os
llamada para obtener la ruta completa como una cadena?
f = open('/Users/Desktop/febROSTER2012.xls')
De f
, ¿cómo llegaría "/Users/Desktop/febROSTER2012.xls"
?
La clave aquí es el name
atributo del f
objeto que representa el archivo abierto. Lo consigues así:
>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> f.name
'/Users/Desktop/febROSTER2012.xls'
Te ayuda?
tempfile.TemporaryFile(mode='w', prefix='xxx', suffix='.txt')
no funciona!tempfile
módulo, especialmente paratempfile.NamedTemporaryFile
, justo debajo de la documentacióntempfile.TemporaryFile
que mencionó. Este es un caso específico para el archivo temporal y, como se ve en los documentos, ya existe una solución.tempfile.TemporaryFile
no está destinado a ser utilizado en caso de que desee leer el nombre.Yo tuve exactamente el mismo problema. Si está utilizando una ruta relativa, os.path.dirname (ruta) solo devolverá la ruta relativa. os.path.realpath hace el truco:
fuente
os.path.realpath
devolverá '~ / text.txt' en lugar de '~ / Documents / text.txt'.Y si solo desea obtener el nombre del directorio y no es necesario que el nombre del archivo lo acompañe, puede hacerlo de la siguiente manera convencional usando el
os
módulo Python.De esta forma puede hacerse con la estructura del directorio.
fuente
f = open('febROSTER2012.xls')
. ¿Cómo se puede llegar al camino completo?También puedes conseguirlo así.
fuente