#python #tkinter #file-upload
#python #tkinter #загрузка файла
Вопрос:
Я использую интерфейс tkinter make для выбора каталога папки и получаю C:/Users/dtung/Desktop / и я хочу преобразовать его в C:UsersdtungDesktop потому что я использую autoit для выбора файла. это мой код
import_file_path = filedialog.askdirectory()
list = os.listdir(path=import_file_path)
import_file_path.replace("/","\")
функция replace не работает ни с какой строкой или символом (нет никаких ошибок, она просто не работает), когда я распечатываю ее, я только что получил старую строку.
Комментарии:
1. потому что вы не присваиваете новую строку какой-либо переменной, которую вы могли бы распечатать. Почему
autoit
тег?2. модуль pathlib имеет функции для детализации путей к файлам. Вам следует рассмотреть возможность его использования вместо замены строки.
3. я использую \ для печати и я не знаю, не могу использовать \ для .
Autoit
потому что мне нужно изменить «/» (можно использовать с помощью send_keys) в каталоге на «» (использовать диалоговое окно).
Ответ №1:
Я не понимаю вашей проблемы. Приведенный выше код отлично работает для меня.
import os
from tkinter import filedialog
import_file_path = filedialog.askdirectory()
list = os.listdir(path=import_file_path)
print('Before', import_file_path)
import_file_path = import_file_path.replace("/", os.sep)
print(os.path.join(import_file_path))
print('After', import_file_path)
распечатывает это на моем компьютере с Windows
Before C:/Users/Mega/Documents/HuaweiMusic
C:UsersMegaDocumentsHuaweiMusic
After C:UsersMegaDocumentsHuaweiMusic
Кстати, зачем вам нужно смешивать Autoit и Python?
Комментарии:
1. Большое вам спасибо. я не могу использовать send_keys() каждый раз, когда я использую его, просто показываю диалоговое окно (file .dwg). Не могли бы вы сказать мне, что не означает os.sep ?
import_file_path = import_file_path.replace("/", os.sep) print("os",import_file_path)
2. и out:
os C:UsersdtungDesktop
так нам это нужноos.path.join(import_file_path)
3. Нет, вам не нужны оба способа. команды replace и join приводят к одному и тому же результату. Os.sep возвращает разделитель, используемый вашей операционной системой. В Windows и в Linux /.
Ответ №2:
Вы можете использовать этот код для устранения проблемы:
import os
from tkinter import filedialog
import_file_path = filedialog.askdirectory()
list = os.listdir(path=import_file_path)
import_file_path = import_file_path.replace("/", "\")
Комментарии:
1. проблема заключается в замене. Я уже импортировал эти 2 библиотеки.