[Python] python源码 文件夹目录整理生成excel



[Python] python源码 文件夹目录整理生成excel

特别声明:本站资源分别为免费资源、查看密码或解压密码资源、三个级别VIP会员资源。本站所有发布的内容都是安全,请放心下载!本站不可能所有资源都可以商业用途,原创或部分除外!如:商业用途请联系原作者购买正版。与本站无关!若侵犯到您的权益,请联系本站删除,我们将及时处理!

分享

代码是整理在文件所在目录下的文件,生成一个目录,用处就是在nas或者远程计算机,当文件过多,无法用everything的时候,使用这个代码生成excel,方便查找需要的文件。
以下有两个版本,一个是深度版,一个是浅版本。

此为深版本

import pandas as pd
import pathlib as ph
import os
 
'''
@datetime :2022年4月9日
说明:
本程序主要作用是提取文件夹内的子文件夹和子文件夹内的文件,将其写入excel
'''
 
 
class ExcelDirectory:
    def __init__(self, directory):
        self.directory = directory
 
    def get_dirfile(self):
        return [(root, files) for root, dirs, files in os.walk(self.directory)]
 
    def df_write(self):
        dir_list = self.get_dirfile()
        df = pd.DataFrame(dir_list, columns=['根目录', '文件'])
        pd.set_option('display.max_columns', None)
        df['文件'] = df['文件'].apply(lambda x: 'null' if x == [] else x)  # 将【】变为null
        cols = [x for i, x in enumerate(df.index) if df.iat[i, 1] == 'null']  # 过滤null
        df = df.drop(cols, axis=0)  # 删除 null
        df.drop(index=0, axis=0, inplace=True)  # 删除第一行
        df3 = df.explode('文件')  # 拆开列表,笛卡尔算法重新排列,将索引和列重新增加匹配
        df3.to_excel('test.xlsx', index=False)  # 因不需要索引,所以未重置索引直接输出为excel文件
 
    def run(self):
        self.df_write()
 
 
 
if __name__ == '__main__':
    p = ph.Path(__file__).parent  # 本地文件夹
    ExcelDirectory(p).run()  # 直接运行

此为浅版本

import os
import xlwings as xw
 
 
class List_Filenames():
 
    def __init__(self,xlsx_filenames):
        self.xlsx_path = xlsx_filenames
        self.app = xw.App(visible=False, add_book=True) # 程序可见,只打开不新建工作薄
        self.app.display_alerts = False # 警告关闭
        self.app.screen_updating = False # 屏幕更新关闭
 
    def __add_sheet(self):
        self.wb = self.app.books.add()
        self.sheet = self.wb.sheets.active
 
    def write_sheet(self):
 
        i = 1
        for path in os.listdir(os.path.dirname(__file__)):
            if os.path.isdir(os.path.join(os.path.dirname(__file__),path)):
                for filename in os.listdir(os.path.join(os.path.dirname(__file__),path)):
                    self.sheet.range('A%s'%i).options(transpose=True).value = path
                    self.sheet.range('B%s'%i).options(transpose=True).value = filename
                    i = i + 1
 
 
    def __save_work(self):
        self.wb.save(self.xlsx_path) # 保存文件
 
 
    def __close_work(self):
        self.wb.close() # 关闭文件
        self.app.quit() # 关闭程序
 
    def main(self):
        self.__add_sheet()
        self.write_sheet()
        self.__save_work()
        self.__close_work()
 
 
if __name__ == '__main__':
    xlsx_filenames = 'test22.xlsx'
    lst_sheet = List_Filenames(xlsx_filenames)
    lst_sheet.main()

 

分享到:
打赏
未经允许不得转载:

作者: cj13888, 转载或复制请以 超链接形式 并注明出处 易启发资源网
原文地址: 《[Python] python源码 文件夹目录整理生成excel》 发布于2022-4-10

评论


切换注册

登录

忘记密码?

您也可以使用第三方帐号快捷登录

切换登录

注册

[Python] python源码 文件夹目录整理生成excel

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏