接着子琂:Python tkinter 学习实践zhuanlan.zhihu.com
往下记录。
框架搭好了,接下来实现核心需求,遍历路径下的文件,获取其名称和类型。
首先是需要获取路径,手动输入太low,于是就需要用到tkFD.askdirectory(),用于呼出文件选择弹框。
路径选择好之后,需要将路径值返回,传递到输入框entry中。这里用到了 text.set(filename)
如果你对布局还不清楚,建议先阅读上一篇:子琂:Python tkinter 学习实践zhuanlan.zhihu.com
#输入框 定义一个字符串obj接收、传递数值
text = StringVar()
text是再main方法中定义的一个用于传递值的变量。
def getway():
filename=tkFD.askdirectory()
text.set(filename)
搞定路径之后,自然就是要遍历文件了。
遍历文件,我最开始想到的是 cmd的 cd 路径、 dir 命令,可以打印输出文件名称列表
自然,有了想法,再借助一下度娘,找到了:os.listdir(dir)可以获取文件的列表。
text.get()是获取输入框entry传过来的值
lis = os.listdir(text.get())
获取列表之后,接下来就要构造DataFrame。
def show():
s = os.path.realpath(text.get())
#print(s) #获取当前文件路径
#print(os.path.dirname(os.path.realpath(text.get()))) # 从当前文件路径中获取目录
#print(os.path.basename(os.path.realpath(text.get()))) #获取文件名
lis = os.listdir(text.get())
tab = []
leixin='未知'
for i in lis:
if '.' not in i:
leixin = '文件夹'
else:
leixin = '.'+i.split(".")[1]
c = {'文件类型':leixin,'文件名称':i}
tab.append(c)
df = pd.DataFrame(tab)
to_Excel(df=df,name='文件列表',where=os.getcwd()+'/文件列表.xlsx')
os.system("文件列表.xlsx")
DataFrame包含两列,文件类型和文件名称。
之后再用自定义函数
to_Excel(df=df,name='文件列表',where=os.getcwd()+'/文件列表.xlsx')
实现将DataFrame输出到excel当中,并用os.system("文件列表.xlsx")命令驱动其打开。
欢迎有兴趣的朋友一起交流学习:
wf342502
下一篇将接着讲剩下的:to_Excel 以及.py如何转换到.exe子琂:DataFrame 到 excel及.py到.exezhuanlan.zhihu.com