Получение python TypeError: ожидаемый объект str, bytes или os.PathLike, а не StringVar - PullRequest
0 голосов
/ 11 января 2020

Я пытаюсь создать набор кнопок tkinter для сценария python, который читает текстовый файл, содержащий список имен файлов, затем ищет эти имена в каталоге, выбранном пользователем, и копирует все найденные файлы в другое место. предусмотрено пользователем.

Но я получаю эту ошибку теперь, когда я вставил кнопки


    with open(filePath, "r") as fh:
TypeError: expected str, bytes or os.PathLike object, not StringVar

Вот код ниже:

import os
import shutil
from tkinter import filedialog
from tkinter import *

def browse_button():
    filePath = filedialog.askopenfilename()

def browse_button():
    global folder_path
    folderPath = filedialog.askdirectory()

def browse_button():
    global destination
    destination = filedialog.askdirectory()

root = Tk()

filePath = StringVar()
lbl1 = Label(master=root,textvariable=filePath)
lbl1.grid(row=0, column=1)
button2 = Button(text="Browse Text File", command=browse_button)
button2.grid(row=0, column=3)


folderPath = StringVar()
lbl1 = Label(master=root,textvariable=folderPath)
lbl1.grid(row=0, column=1)
button2 = Button(text="Browse Source Folder", command=browse_button)
button2.grid(row=0, column=6)


destination = StringVar()
lbl1 = Label(master=root,textvariable=destination)
lbl1.grid(row=0, column=1)
button2 = Button(text="Browse Destination Folder", command=browse_button)
button2.grid(row=0, column=9)

filesToFind = []
with open(filePath, "r") as fh:
    for row in fh:
        filesToFind.append(row.strip())


for filename in os.listdir(folderPath):
    if filename in filesToFind:
        filename = os.path.join(folderPath, filename)
        shutil.copy(filename, destination)

mainloop()

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