Использование выбранного пользователем файла "filedialog.asksaveasfile" для сохранения файла в функции - PullRequest
0 голосов
/ 02 апреля 2020

Я использую эту функцию, чтобы позволить пользователю выбрать файл .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

Как мне правильно отформатировать это?

Спасибо!

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