сохранение значений askdirectory для использования в функциях - PullRequest
0 голосов
/ 20 октября 2019

Я сделаю все возможное, чтобы описать это. Поскольку код, с которым я работаю, не выдает никаких ошибок как таковых - и я читал / смотрел / пробовал несколько вещей, которые привели к той же самой проблеме, где созданные папки не могут быть вызваны для завершения функций, как только они'set'

Я строю графический интерфейс с использованием tkinter. Мне нужно указать две отдельные директории (A и B), в которых есть изображения, которые будут переименованы другими функциями.

У меня есть две отдельные кнопки, которые вызывают функцию askdirectory для установки этих каталогов:

def set_A_dir():
    A_dir = filedialog.askdirectory(initialdir="~/", title="Define A Directory")
    A_dir_set = (os.path.join(A_dir))
    return A_dir_set

Проблема, с которой я столкнулся при работе с этим каталогом, заключается в том, что каталог, в котором он находится, представляет собой одну папку назад из папки, выбранной с помощью функции askdirectory. то есть, если он указывает на ~ / users / folder / A, он вернет только ~ users / folder

Так что мне нужно использовать файлы изображений в папке A для настроенной мной функции переименования. Когда я вызываю результат из set_A_dir, я получаю ошибку, что A_dir_set не определен.

Я попытался сделать это с помощью StringVar, однако, когда пришло время переименовать файлы, я не смогиспользуй это. Я также осознаю кросс-платформенную функциональность метода os.join, которую я бы предпочел использовать.

Я также пытался сделать это с помощью os.chdir и os.cwd - который работал, ноон сохранял только одно значение для каждого, что означало, что если бы я захотел вернуться и выполнить функции переименования в каталоге A после использования каталога B, каталоги для любого из них не были бы сохранены, и мне пришлось бы переустановить его наcwd каждый раз.

Итак, подведем итог - у меня есть кнопка для A и кнопка для B, чтобы указать каталоги. Я хочу сохранить значение, полученное функцией askdirectory для каждой из этих кнопок, чтобы иметь возможность использовать эти отдельные каталоги для запуска функций переименования.

для тестирования, для этого я мог бы включить что-то вродеследующее:

print(os.lisdir(A_dir))

В идеале - после того, как я переместил это в работающее приложение, эти каталоги будут храниться до тех пор, пока пользователь (я) не решит изменить их снова.

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