使用Python创建文件索引Excel

问题背景

之前参与过一个项目,在做应标的最后,需要做一个Excel,里面有文件的层级目录关系,还要有文件的超链接。当时记得一共有7个模块,每个模块一个目录,目录下面嵌套了很多层的目录,每层目录下面都有一定数量的文件。虽然在DOS下面可以tree一下,列出文件树,但是无法直接打开对应的文件。要手工添加超连接也是要了我们的老命。标最后交了,一大帮人,每个人两三个小时的时间也浪费了。

这样的场景要是再来一次咋办,再这么搞?没有积累没有提升,那还不歇逼。虽然已经不碰代码很多年,必要的时候也要能说搞就搞,那就抽了点时间,搞个脚本解决这个问题。本来想用shell,Python混一下,想想还是统一用Python吧

测试文件准备

首先准备一些简单的文件,用来做个测试。
在这里插入图片描述

调试结果

通过一些时间的调试,运行最后调好的脚本,生成对应的Excel文件。我就在对应的目录下面执行了脚本了。如果后面跟的参数不是当前目录的话,可能会出现一些小问题。
在这里插入图片描述
多了一个Excel文件,文件名为 FileTrace.xlsx
在这里插入图片描述
文件内容如下:
在这里插入图片描述
Excel稍作调整以后,如图。A列是层级关系,B列是超链接。点击B列的B12网格,就打开了对应的文件。
在这里插入图片描述

调试成型的脚本

下面的脚本供大家参考。有优化建议,欢迎大家评论。

__author__ = 'Wayne'
import os
import sys
from openpyxl import Workbook

def get_filename(dirname):
	wb = Workbook()
	ws = wb.create_sheet(title="Data")
	ws["A1"] = "File Path"
	ws["B1"] = "Hyperlink"
	for roots, dirs, files in os.walk(dirname):
		dirs.sort()
		files.sort()
		rowA = roots.count('/')*'|  '+'|=>'+roots.split('/')[-1]
		ws.append([rowA])
		for file in files:
			if file[0] != '.':
				rowA = (roots.count('/')+1)*'|  '+'|--'+file
				rowB = '=hyperlink("' + roots + '/' + file + '","' + file + '")'
				ws.append([rowA,rowB])
	del wb['Sheet']
	wb.save("FileTrace.xlsx") 

def cmd_run():
	if len(sys.argv) != 2:
		print('参数个数错误')
		exit()
	if not os.path.exists(sys.argv[1]):
		print('输入路径错误')
		exit()
	print(sys.argv[0], 'is running now\nPlease check the result file --> FileTrace.xlsx')
	get_filename(sys.argv[1])

if __name__ == '__main__':
	cmd_run()

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值