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:40 编辑
科大的思念 发表于 2022-4-10 21:45
姓名 身份证号码 手机号码 "是否本人手机
1=是,2=否" 所在县(市/区) 所在镇(街道) 所在村(社区) 现居住 ...
链接: https://pan.baidu.com/s/10oJ6vLU-JgjrUTjpw7FXww?pwd=kxhb 提取码: kxhb 复制这段内容后打开百度网盘手机App,操作更方便哦
测试没问题,有问题私信给我!
话痨司机啊 发表于 2022-4-10 20:11
from selenium import webdriver
姓名 身份证号码 手机号码 "是否本人手机
1=是,2=否" 所在县(市/区) 所在镇(街道) 所在村(社区) 现居住详细地址 户籍所在地 单位名称 是否常住 这是表格内容
xiadongming 发表于 2022-4-9 20:46
感觉写的不错
谢谢支持 学习一下。 很实用,谢谢 dir /s /n >文件目录.txt
类似这个? 请问运行速度快不快? zsz1204 发表于 2022-4-10 08:19
请问运行速度快不快?
笛卡尔计算的那个比后面的那个快一些 公元2099 发表于 2022-4-10 07:36
类似这个?
类似 dir /s /n ,主要远程计算机用这个,windows下用everything 更方便一些 能帮忙设计一款批量登记程序吗?excel信息 进入http://36.99.39.228:9830/zhouk-qrcode/#/personal 生产二维码 科大的思念 发表于 2022-4-10 11:16
能帮忙设计一款批量登记程序吗?excel信息 进入http://36.99.39.228:9830/zhouk-qrcode/#/personal 生产二 ...
把设计方案给我