2009-12-10 12 views

risposta

12
file = tkFileDialog.askopenfile(parent=root,mode='rb',filetypes=[('Subrip Subtitle File','*.srt')],title='Choose a subtitle file') 
abs_path = os.path.abspath(file.name) 
+2

Questo funzionerà finché non ci sarà nessuna chiamata 'os.chdir()' tra queste due linee. Quindi nel caso di questa domanda probabilmente va bene, ma non è perfetto. Non riesco a pensare a un modo per farlo che funzionerà sempre in cima alla mia testa. –

+0

Non conosco alcun buon motivo per usare os.chdir() in una app GUI - almeno, non quella che usa anche i thread, e questo è l'unico modo per ottenere una chiamata a chdir() "tra" due linee di fonte che controlli. –

+0

Questo approccio può essere considerato attendibile? Nel descrivere l'attributo .name degli oggetti file, i documenti python dicono: "Questo è un attributo di sola lettura e potrebbe non essere presente su tutti gli oggetti simili a file". Vedi: https://docs.python.org/2/library/stdtypes.html#file.name –

3

os.path.abspath dovrebbe fare quello che vuoi, se ho capito bene la tua domanda.

+0

Questo funziona bene se mi passa una stringa, ma non so come ottenere il percorso come stringa dal mio file oggetto :) – abcde123483

+2

@ulvund, provate questo: file.name lavora per file di oggetti –

+0

Ahh grazie mille miliardi di Nadia .. questo è stato il trucco. – abcde123483

Problemi correlati