美文网首页
【Python】将文件名导入excel表格,Python打包调用

【Python】将文件名导入excel表格,Python打包调用

作者: 吵吵人 | 来源:发表于2020-04-11 17:40 被阅读0次

简介:本文实现了一个简单的将指定路径下的文件名都整理到excel表格之中,其中涉及:

  • 文件操作
  • Excel相关操作
  • 将功能打包成自定义的Python包并调用
  • 设计一个简单的界面实现交互
  • 生成一个.exe应用文件

利用Python将指定路径下的文件名列入excel表格

import os
import openpyxl


def get_file_name(file_dir):
    '''
    获取指定目录下所有文件名称
    :param file_dir:指定目录
    :return:返回文件名列表
    '''
    for root, dirs, files in os.walk(file_dir):
        # return root  #当前目录路径,即输入的file_dir
        # return dirs  #当前路径下所有子目录(文件夹名称)
        return files  # 当前路径下的所有文件(不是文件夹,是带有后缀的文件名)


def class_file_name(file_dir, file_type):
    '''
    获取指定文件夹下的指定文件类型名称
    :param file_dir:指定目录
    :param file_type:
    :return:返回文件名列表
    '''
    ls = []
    f = []
    for root, dirs, files in os.walk(
            file_dir):  # 直接return files只返输入目录下的文件,但是for file in files 加后面的append操作将输出输入目录下及子目录所有的文件
        for file in files:
            if os.path.splitext(file)[1] == file_type:  # 分离文件名和扩展名
                ls.append(os.path.join(root, file))  # 完整路径+文件名
                f.append(file)
    return f


def output2excelfunc(file_dir, *args):
    '''
    把文件夹下的文件名称输出到文件目录
    :param file_dir: 文件目录
    :return:
    '''
    # 如果只有路径没有其他参数,不分类型返回文件名
    if len(args) == 0:
        # 获取文件目录下所有文件名,存入data列表
        data = get_file_name(file_dir)

    elif len(args) == 1:
        data = class_file_name(file_dir, args[0])

    # 把data输出到该目录下,并以目录名保存为excel格式
    wb = openpyxl.Workbook()
    sheet = wb.active  # 调用得到正在运行的工作表
    # 设置表名为文件目录名
    # sheet.title = 'sheet1' #默认就是sheet1

    for i in range(1, len(data) + 1):  # range函数从1开始,但不包括的后面的数
        sheet['A{}'.format(i)] = data[i - 1]

    if file_dir == '':
        file_dir = '当前目录'

    wb.save('{0}/{1}.xlsx'.format(file_dir, '所有文件'))

file_dir = 'D:\\'
output2excelfunc(file_dir)

示例

D盘文件如下:

运行之后生成excel表格

打开表格:

参考链接:https://www.jianshu.com/p/b32c6fdb0e50

自定义包并调用

将上面的代码自定义成包的步骤如下:

新建一个python包 命名为outputfile2excel之后在左侧栏中可以看到。Python包会有一个__int__.py文件 在包里新建.py文件 将上面的代码,去掉最后两行粘贴到新建的.py文件中,这里命名为output2excel.py 现在假设要在hello.py文件中调用刚才的函数,如下图导入调用即可

定义和调用自定义的包参考:https://www.jianshu.com/p/3bc924a8c7e5

界面交互

代码如下:

# 参考:https://www.jianshu.com/p/91844c5bca78

from tkinter import *
from tkinter import messagebox  # 有了上一句为什么还要加这句,否则就出错?
from outputfile2excel import output2excel


# 设计一个回调函数调用文件整理功能
def file2excel():
    file_dir = inpt_path.get()
    file_type = inpt_type.get()
    output2excel.output2excelfuc(file_dir, file_type)
    messagebox.showinfo(title='消息', message='文件整理完毕!')


# 初始化窗体
root = Tk()
root.title('文件整理系统')
root.geometry('300x300')

# 设计界面
lb_path = Label(root, text='根目录路径:')
lb_path.place(relx=0.1, rely=0.2, relheight=0.1, relwidth=0.3)
inpt_path = Entry(root)
inpt_path.place(relx=0.4, rely=0.2, relheight=0.1, relwidth=0.5)

la_type = Label(root, text='文件类型(可选):')
la_type.place(relx=0.1, rely=0.5, relheight=0.1, relwidth=0.4)
inpt_type = Entry(root)
inpt_type.place(relx=0.5, rely=0.5, relheight=0.1, relwidth=0.4)

btn_ok = Button(root, text='确定', command=file2excel)
btn_ok.place(relx=0.6, rely=0.8, relheight=0.1, relwidth=0.3)

root.mainloop()

运行示意:


运行界面 运行结束消息提示框 运行结果

这个可以看做是文件搜索功能吧哈哈哈哈

生成.exe应用程序

首先安装 pyinstaller 包,然后在pycharm本工程下的Terminal界面输入 pyinstaller -F -w -i .\file.ico .\TKtest.py即可。记得在生成exe过程中把360等杀毒软件关掉。

参数含义

生成结果:

双击出现和之前一样的界面,这样就可以不打开python 也可以用啦啦啦啦

相关文章

网友评论

      本文标题:【Python】将文件名导入excel表格,Python打包调用

      本文链接:https://www.haomeiwen.com/subject/ifhumhtx.html