用python创建了一个窗口,可以选择文件,现在想要在同一目录下搜索出其他文件

一个文件夹里面有三个文件,我选择其中一个data文件, 然后利用其他两个名为time 和 config的文本来获取相应信息,已经定义了相关函数,可以对time和config进行处理,但是都是指定路径的方式打开文件的,我想根据打开的文件夹路径来搜索相关文件,如何处理

刚好我前段时间写了一个日志分析工具、也是需要手动选择文件夹、然后列出整个文件夹里面的文件,然后双击选择

1、用tkinter.filedialog的filedialog来打开选择文件夹

2、用os.listdit()来显示文件夹里面的所有文件,当然你可以设置if条件,来选择你想显示的文件

代码;

#!/usr/bin/env python
#!encoding:utf-8
#!filename:test_filedialog.py
import tkinter.filedialog as filedialog
from tkinter import *
import os
from tkinter import *

def callback():
    entry.delete(0,END) #清空entry里面的内容
    listbox_filename.delete(0,END)
    #调用filedialog模块的askdirectory()函数去打开文件夹
    global filepath
    filepath = filedialog.askdirectory() 
    if filepath:
        entry.insert(0,filepath) #将选择好的路径加入到entry里面
    print (filepath)
    getdir(filepath)

def getdir(filepath=os.getcwd()):
    """
    用于获取目录下的文件列表
    """
    cf = os.listdir(filepath)
    for i in cf:
        listbox_filename.insert(END,i)

if __name__ == "__main__":
    root = Tk()
    root.title("测试版本")
    root.geometry("400x400")
    root.rowconfigure(1, weight=1)
    root.rowconfigure(2, weight=8)

    entry = Entry(root, width=60)
    entry.grid(sticky=W+N, row=0, column=0, columnspan=4, padx=5, pady=5)

    button = Button(root,text="选择文件夹",command=callback)
    button.grid(sticky=W+N, row=1, column=0, padx=5, pady=5)
    #创建loistbox用来显示所有文件名
    listbox_filename = Listbox(root, width=60)
    listbox_filename.grid(row=2, column=0, columnspan=4, rowspan=4, 
                            padx=5, pady=5, sticky=W+E+S+N)

    root.mainloop()

效果图

望采纳

温馨提示:答案为网友推荐,仅供参考
相似回答