Получение направления папки из функции без повторного вызова - PullRequest
0 голосов
/ 10 марта 2020

Извините, я уже задал этот вопрос, но я новичок в программировании, и у меня больше нет никого, кто мог бы попросить о помощи. Я пытаюсь получить направление папки для этого. сейчас нужно получить информацию, хранящуюся в переменной 'direccion', чтобы я мог использовать ее, чтобы передать ее другой переменной, в этом случае это будет arcpy.env.workspace. Я пытался использовать return и global, но появляется сообщение «Не определено», и если я снова вызываю функцию, то перед нажатием кнопки, которая должна открыть диалоговое окно файла, появляется диалоговое окно файла, и это просто не работает, спасибо

#Importados
from tkinter import *
from tkinter import filedialog
import arcpy, os, shutil


#Root
root = Tk()
root.title('INTERFAZ COMPOSICION DE BANDAS')
root.iconbitmap('ICON.ico')
root.config(bg='gray')
root.resizable(1,1)

#Frame
frame=Frame(root,width=480,height=320)
frame.config(cursor="arrow")
frame.pack(side='top')


#Label
Labeltitulo = Label(frame,text='Composicion de bandas')
Labeltitulo.grid(row=0,column=1)

#Buscador Directorio
imagen=PhotoImage(file=r'C:\Users\57314\Documents\AUTOMATING\COMP_RGB\folder.png')
pic=imagen.subsample('3','3')
def buscador():
    global direccion
    direccion = filedialog.askdirectory(parent=root,title='Escoge carpeta a analizar')
    print (direccion)
    return direccion

BotonFolder = Button(frame,text='Click me',image=pic,command=buscador).grid(row=1,column=0)

Labeldirectorio=Label(frame,text='Ingresa directorio')
Labeldirectorio.grid(row=3,column=0)

#Pasting directorio
entry = Label(frame)
entry['text']='Choose a folder to analize'
entry.grid(row=1,column=1)

#Arcpy
#Enviroment
arcpy.env.workspace = raw_input('Introduce la carpeta a analizar: ')




root.mainloop()

1 Ответ

0 голосов
/ 10 марта 2020

Я не до конца понимаю вашу проблему (полная трассировка стека ошибок поможет) и не знаю tkinter, но если у вас возникают проблемы с доступом к direccion, как вы это делаете, вы можете попробовать определить его за пределами buscador () также.

direccion = None
def buscador():
     global direccion
     direccion = 'myval'

print(direccion)
buscador()
print(direccion)

>>> None
>>> 'myval'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...