话痨司机啊 发表于 2022-4-9 19:35

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

代码是整理在文件所在目录下的文件,生成一个目录,用处就是在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 = == '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()

话痨司机啊 发表于 2022-4-11 13:17

本帖最后由 话痨司机啊 于 2022-4-11 13:40 编辑

科大的思念 发表于 2022-4-10 21:45
姓名      身份证号码      手机号码      "是否本人手机
1=是,2=否"      所在县(市/区)      所在镇(街道)      所在村(社区)      现居住 ...
链接: https://pan.baidu.com/s/10oJ6vLU-JgjrUTjpw7FXww?pwd=kxhb 提取码: kxhb 复制这段内容后打开百度网盘手机App,操作更方便哦

测试没问题,有问题私信给我!



科大的思念 发表于 2022-4-10 21:45

话痨司机啊 发表于 2022-4-10 20:11


from selenium import webdriver


姓名        身份证号码        手机号码        "是否本人手机
1=是,2=否"        所在县(市/区)        所在镇(街道)        所在村(社区)        现居住详细地址        户籍所在地 单位名称 是否常住   这是表格内容

话痨司机啊 发表于 2022-4-9 21:04

xiadongming 发表于 2022-4-9 20:46
感觉写的不错

谢谢支持

dillonqi 发表于 2022-4-9 21:07

学习一下。

ycmingtian 发表于 2022-4-9 21:20

很实用,谢谢

公元2099 发表于 2022-4-10 07:36

dir /s /n >文件目录.txt

类似这个?

zsz1204 发表于 2022-4-10 08:19

请问运行速度快不快?

话痨司机啊 发表于 2022-4-10 09:59

zsz1204 发表于 2022-4-10 08:19
请问运行速度快不快?

笛卡尔计算的那个比后面的那个快一些

话痨司机啊 发表于 2022-4-10 10:00

公元2099 发表于 2022-4-10 07:36
类似这个?

类似 dir /s /n ,主要远程计算机用这个,windows下用everything 更方便一些

科大的思念 发表于 2022-4-10 11:16

能帮忙设计一款批量登记程序吗?excel信息 进入http://36.99.39.228:9830/zhouk-qrcode/#/personal 生产二维码

话痨司机啊 发表于 2022-4-10 12:33

科大的思念 发表于 2022-4-10 11:16
能帮忙设计一款批量登记程序吗?excel信息 进入http://36.99.39.228:9830/zhouk-qrcode/#/personal 生产二 ...

把设计方案给我
页: [1] 2 3
查看完整版本: python源码 文件夹目录整理生成excel