【Python】将文件名导入excel表格,Python打包调用,简单交互界面,生成应用程序

简介:本文实现了一个简单的将指定路径下的文件名都整理到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表格

打开表格:

参考链接://www.greatytc.com/p/b32c6fdb0e50

自定义包并调用

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

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

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

界面交互

代码如下:

# 参考://www.greatytc.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 也可以用啦啦啦啦

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容

  • 有些事情我说不清楚,爸爸问我是不是在学校就发烧了。我说老师早上的时候有说我低烧了。 回到家里我躺在沙发上,他们看我...
    谷子阅读 181评论 0 0
  • 又在车上了,目标青岛,但是路况却不是很好,只剩四百公里的路却不再好走,看来中午饭又吃不上了。 周围又出现了很多输电...
    商昕璐阅读 191评论 0 0
  • 就想走走他们走过的路,看看他们看过的风景…他们,是我不及的梦,总会有一天,再访人艺,那时的脚步,一定不那么匆忙了…...
    是非风过耳阅读 125评论 0 0
  • 有人问我为何忧愁 我说是秋天到了 凉凉爽爽 却也凄凄凉凉的 我在院子里踌躇着 也惆怅着 有人问我为何忧愁 我说...
    花不朵阅读 170评论 0 0