Я использую эту функцию, чтобы позволить пользователю выбрать файл .txt для сохранения вывода:
def FileSave():
zielPfadUndDatei = filedialog.asksaveasfile(initialdir=verzeichnisPythonSkript, mode='w', filetypes=[("Textdateien", "*.txt")], defaultextension=".txt")
if zielPfadUndDatei is None: # asksaveasfile return `None` if dialog closed with "cancel".
return
else:
anzeigeUserSpeicherpfad.delete(0, END)
anzeigeUserSpeicherpfad.insert(INSERT,zielPfadUndDatei.name)
return anzeigeUserSpeicherpfad
zielPfadUndDatei.close()
Эта кнопка будет использоваться "Speichern unter":
speichern = Button(master=root, text = "Speichern unter...", command=FileSave)
speichern.place(x=660, y=40, width=120, height=25)
После этого файл должен быть записан кнопкой «Генерировать»:
#Generate Button
generate = Button(master=root, text = "Generate", command=lambda:ReadEvaluateSave(oeffnen,speichern))
generate.place(x=660, y=100, width=120, height=70)
Функция для кнопки «Генерировать»:
def ReadEvaluateSave(quelldatei, zieldatei):
with open(quelldatei, 'r') as quelle:
for line in quelle:
all_lines = quelle.readlines()
quelle.close()
Проблема: Я хочу присвоить этой функции путь к файлам из исходного файла и целевого файла, и я получаю следующую ошибку:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\OB\Downloads\portamu_1.0.2_win64\pkgs\tkinter\__init__.py", line 1702, in __call__
return self.func(*args)
File "c:\users\ob\downloads\gui_read_file.py", line 164, in <lambda>
generate = Button(master=root, text = "Generate", command=lambda:ReadEvaluateSave(oeffnen,speichern))
File "c:\users\ob\downloads\gui_read_file.py", line 63, in ReadEvaluateSave
with open(quelldatei, 'r') as quelle:
TypeError: expected str, bytes or os.PathLike object, not Button
Как мне правильно отформатировать это?
Спасибо!