2016-04-11 5 views
0

Я начал с python, поэтому, пожалуйста, извините меня, если словарь, который я использую, непригоден. Я создал функцию, и я хотел бы восстановить место, где находится файл (его URL-адрес в компьютере) в переменной.Получить переменную функции python

Может ли кто-нибудь сказать мне, как это возможно?

Спасибо заранее

from tkinter import* 
from tkinter import filedialog 
from tkinter.messagebox import* 
import tkinter.filedialog 

Tk().withdraw() 

def insert_photo(): 
    photo = tkinter.filedialog.askopenfilename(title="Ouvrir une image",filetypes=[('Jpg files','.jpg'),('Gif files','.gif'),('Bmp files','.bmp'),('Png files','.png'),('Tiff files','.tif'),('All files','.*')]) 
    return photo 

На самом деле, я просто хочу, чтобы получить переменную в путь к файлу изображения, так что я мог бы назвать его более легко в другом сценарии.

Я пробовал print(os.path.realpath(__file__)), но проблема в том, что даже при tkinter window фурма. Я просто хочу, чтобы функция выполнялась в оболочке, и только когда я ее вызвал, откроется окно изучения, и я могу получить путь в переменной.

+0

Я немного запутался, о котором «файл» вы имеете в виду, и какие проблемы вы испытываете сохранение его в переменной , Если это файл изображения, запрашиваемый пользователем, который возвращается вашей функцией, и вызывающий код может назначить его переменной, если вы хотите. Если вам нужен файл, в котором находится ваш код, то что-то вроде того, что у вас есть с '__file__', должно работать с назначением вместо вызова' print'. – Blckknght

ответ

0

Я точно не знаю, в чем проблема. Я запустил ваш код, и он работает. Вы после UNC-пути?

Вы пробовали:

>>> p = insert_photo(): 
>>> print(p) 

Вы, кажется, есть свой путь уже.

Если вы пытаетесь открыть диалоговое окно файла в определенной папке, вы можете изменить текущий рабочий каталог на os.chdir(PATH).

Если вы хотите только папку изображения в вы можете сделать os.path.split(PATH)[0]

+0

Да, это работает очень хорошо, но проблема в том, что при прямом запуске скрипта окно открывается, когда я просто хочу иметь возможность вызывать функцию, когда захочу, без открытия окна в начале; и восстановить переменную после открытия окна. – LudovicC

Смежные вопросы