我有一个脚本,使用tKinter来创建窗口,并允许用户浏览和选择目录。然后,我使用glob抓取目录中的文件...但这给了我一些奇怪的路径,例如://文件服务器/selected_folder\\file01.xlsx当我使用该路径时,什么也不会返回。我在Windows环境中,从网络中选择一个文件夹,如果有什么不同的话。这是代码:from tkinter import *from tkinter import ttkfrom tkinter import filedialogimport globdef browse(*args): directory.set(filedialog.askdirectory()) returndef parse(*args): all_files = None all_files = glob.glob( directory.get() + "/*.nessus")def main_menu(): root = Tk() root.title("Parse Files") mainframe = ttk.Frame(root, padding="3 3 12 12") mainframe.grid(column=0, row=0, sticky=(N, W, E, S)) mainframe.columnconfigure(0, weight=1) mainframe.rowconfigure(0, weight=1) global directory directory = StringVar() ttk.Label(mainframe, text="Directory of Files: ").grid(column=1, row=1, sticky=E) dir_entry = ttk.Entry(mainframe, width=30, textvariable=directory) dir_entry.grid(column=2, row=1, sticky=(W, E)) ttk.Button(mainframe, text="Browse", command=browse).grid(column=3, row=1, sticky=(W,E)) ttk.Button(mainframe, text="Parse", command=parse).grid(column=3, row=3, sticky=W) for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5) dir_entry.focus() root.bind('<Return>', parse) root.mainloop()if __name__ == '__main__': main_menu() 最佳答案 您获得的文件似乎在某种程度上被非规范化了。奇怪的是,您有askdirectory的文件名,这可能是某种外壳扩展名(例如,打开的ZIP文件或类似的东西)的结果,而普通的tk_chooseDirectory由 tkinters不会自己这样做。因此,您应该再次规范化路径,以删除文件名之前的这两个额外的askdirectory。python中执行此操作的工具是\。例如:>>> import os>>> print(os.path.normpath('//file-server/selected_folder\\file01.xlsx'))\\file-server\selected_folder\file01.xlsx关于python - 在glob中使用tKinter askdirectory(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35754573/
10-10 04:23