#python #python-3.x #tkinter #filesystems
Вопрос:
У меня есть скрипт, который удаляет файлы с удаленных сетевых узлов и сохраняет их на удаленном диске. Прямо сейчас моим сценариям требуется жестко закодированное место назначения для его местоположения, например:
dest_path_cfg = f"G:\path\to\my\folder"
Я хотел бы обновить этот скрипт, чтобы пользователь, запустивший его, мог выбрать папку, которую он хотел использовать для сохранения файлов через проводник. Я видел, как я могу использовать:
import subprocess
subprocess.Popen(r'explorer /select,"C:pathoffolderfile"')
чтобы открыть окно проводника файлов в заданный каталог, но я не уверен, как использовать подпроцесс, позволяющий возвращать пользовательский выбор в скрипт python, чтобы его можно было выполнить позже.
Сейчас я рассматриваю только совместимость с Windows, но в будущем я хотел бы добавить гибкость Mac/Linux.
Ответ №1:
Вы можете использовать модуль Tkinter Python, который содержит эту функцию filedialog.askdirectory()
. Это откроет стандартное диалоговое окно выбора папки Windows.
import tkinter
from tkinter import filedialog
tkinter.Tk().withdraw() # prevents an empty tkinter window from appearing
folder_path = filedialog.askdirectory()
Комментарии:
1. Вы также можете упростить это и написать
tkinter.Tk().withdraw()
.2. Я попробовал оба этих метода, и я не вижу, как заполняется окно проводника. Мой экран ненадолго мигает, а затем мой код зависает. Не уверен, почему не отображается проводник файлов. Я бы предположил, что если окно заполняется правильно, то оно будет ждать, пока я выберу папку и нажму «ок», прежде чем пытаться продолжить, верно?
3. После некоторой настройки я смог заставить его работать. Спасибо! Очень признателен!
4. Без проблем. (Вы также можете принять ответ, если он решит вашу проблему)