Как заменить входную строку в python

#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 библиотеки.