Risposte:
La chiave qui è l' nameattributo fdell'oggetto che rappresenta il file aperto. Lo ottieni così:
>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> f.name
'/Users/Desktop/febROSTER2012.xls'
Aiuta?
tempfilemodulo, specialmente per tempfile.NamedTemporaryFile, appena sotto la documentazione per tempfile.TemporaryFilete menzionata. Questo è un caso specifico per i file temporanei e, come si vede nei documenti, esiste già una soluzione. tempfile.TemporaryFilenon è pensato per essere utilizzato nel caso in cui si desideri leggere il nome.
Ho avuto lo stesso identico problema. Se stai usando un percorso relativo, os.path.dirname (percorso) restituirà solo il percorso relativo. os.path.realpath fa il trucco:
>>> import os
>>> f = open('file.txt')
>>> os.path.realpath(f.name)
os.path.realpathrestituirà "~ / text.txt" invece di "~ / Documents / text.txt".
E se vuoi solo ottenere il nome della directory e non è necessario il nome del file che lo accompagna, puoi farlo nel seguente modo convenzionale usando il osmodulo Python.
>>> import os
>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> os.path.dirname(f.name)
>>> '/Users/Desktop/'
In questo modo puoi ottenere la struttura delle directory.
f = open('febROSTER2012.xls'). Come puoi arrivare al percorso completo?
Puoi ottenerlo anche in questo modo.
filepath = os.path.abspath(f.name)
tempfile.TemporaryFile(mode='w', prefix='xxx', suffix='.txt')non funziona!