专业的JAVA编程教程与资源

网站首页 > java教程 正文

告别手动整理!用Python一键导出所有代码文件到Excel

temp10 2025-06-28 16:23:04 java教程 1 ℃ 0 评论

有些工作经验的朋友可能遇到过这种场景,为了一个认证,需要你生成你项目的代码清单。一个项目代码文件没有几百也有上千,如果全是手动复制,非常浪费时间。今天就展示一下怎么用python来自动生成

获取代码清单

要完成这个功能需要用到python的os模块,它用于与操作系统进行交互的核心模块,它提供了许多函数来操作文件和目录,以及执行一些基本的操作系统功能。

告别手动整理!用Python一键导出所有代码文件到Excel

import os
path = 'D:\workspace3\demo'
def listFile(path):
 for item in os.listdir(path):
 full_path = os.path.join(path, item)
 if os.path.isfile(full_path) and item.endswith('.java'):
 print(full_path)
 elif os.path.isdir(full_path):
 listFile(full_path)

listFile(path)


执行以上代码后,就可以获得我的一个demo工程中所有代码清单。其中用到主要功能点如下:

l os.listdir(path): 列出目录内容

l os.path.join(path1, path2): 连接路径

l os.path.isfile(path): 检查是否为文件

l os.path.isdir(path): 检查是否为目录

当检查到当前路径是目录是,就递归调用listFile 函数,直到获取所有java文件。


把代码清单填充到excel文件中

首先,我先修改一下上面那个函数,让它把所有代码清单赋值到一个列表中。

def listFile(path):
 java_files = []
 for item in os.listdir(path):
 full_path = os.path.join(path, item)
 if os.path.isfile(full_path) and item.endswith('.java'):
 # print(full_path)
 java_files.append({
 'code_path': os.path.dirname(full_path),
 'file_name': item
 })
 elif os.path.isdir(full_path):
 # listFile(full_path)
 java_files.extend(listFile(full_path))
 return java_files

当遍历到一个文件时,就添加一个字典,里面包含code_path和file_name。当遍历到目录时,就扩展这个最终要返回的列表。


然后定义一个清单文件模板,假设是这个样子的:


根据这个模板写一个生成清单的函数:

from openpyxl import load_workbook
from datetime import datetime
……
def generate_new_excel(template_path, java_files, output_dir=None):
 # 加载模板文件
 wb = load_workbook(template_path)

 # 获取第一个工作表(或根据metadata指定的工作表)
 sheet = wb.worksheets[0]

 # 写入新的Java文件信息
 for i, file_info in enumerate(java_files, start=2): # 从第2行开始写入
 sheet.cell(row=i, column=1, value=file_info['code_path'])
 sheet.cell(row=i, column=2, value=file_info['file_name'])

 # 生成带时间戳的新文件名
 timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
 new_filename = f"java_file_list_{timestamp}.xlsx"

 # 确定输出路径
 if output_dir and os.path.isdir(output_dir):
 output_path = os.path.join(output_dir, new_filename)
 else:
 output_path = new_filename

 # 保存新Excel文件
 wb.save(output_path)
 print(f"已生成新的文件清单: {output_path}")
 return output_path

java_files = listFile(path)
generate_new_excel('./execlfiles/list.xlsx',java_files,'./execlfiles')


最后在指定目录下,就生成了一个预期想要的清单。


总结

这篇展示如何利用了python的os模块和openpyxl库,生成了一个指定目录下的代码清单。其实类似的文件清单的话,也可以按这方式生成。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表