-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
66 lines (57 loc) · 2.36 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# import os
# from docx import Document
#
# # 设置文件夹路径和输出Word文档的路径
# folder_path = '/home/zoedoet/workspace/go/doc_server' # 替换为你的Go文件所在的文件夹路径
# output_docx_path = 'doc_server.docx' # 输出的Word文档名
#
# # 创建一个新的Word文档
# doc = Document()
#
# # 递归遍历指定文件夹中的所有.go文件
# for root, dirs, files in os.walk(folder_path):
# for filename in files:
# if filename.endswith('.go'):
# file_path = os.path.join(root, filename)
# with open(file_path, 'r', encoding='utf-8') as file:
# # 读取Go文件的内容
# content = file.read()
# # 创建一个新的段落并添加文件内容
# doc.add_paragraph(content)
# # 添加一个分隔线,以便区分不同的Go文件
# doc.add_paragraph('\n---\n')
#
# # 保存Word文档
# doc.save(output_docx_path)
# print(f'所有Go文件的内容已汇总到 {output_docx_path}')
import os
import subprocess
from docx import Document
from docx.shared import Pt
from docx.oxml import OxmlElement
# 设置文件夹路径和输出Word文档的路径
folder_path = '/home/zoedoet/workspace/go/doc_server' # 替换为你的Go文件所在的文件夹路径
output_docx_path = 'test_summary.docx' # 输出的Word文档名
# 创建一个新的Word文档
doc = Document()
# 在最外层文档路径下执行shell指令 tree .
tree_output = subprocess.check_output(['tree', '.', '-L', '2'], cwd=folder_path, text=True, stderr=subprocess.DEVNULL)
tree_output_lines = tree_output.strip().split('\n')
# 将tree命令的输出结果添加到Word文档的最前面
for line in tree_output_lines:
doc.add_paragraph(line)
# 添加分隔线
doc.add_paragraph('\n---\n')
# 递归遍历指定文件夹中的所有.go文件
for root, dirs, files in os.walk(folder_path):
for filename in files:
if filename.endswith('.go'):
file_path = os.path.join(root, filename)
with open(file_path, 'r', encoding='utf-8') as file:
# 读取Go文件的内容
content = file.read()
# 创建一个新的段落并添加文件内容
doc.add_paragraph(content)
# 保存Word文档
doc.save(output_docx_path)
print(f'所有Go文件的内容已汇总到 {output_docx_path}')