Python脚本实现多文件合并与源码清单生成

巷口听风
巷口听风
发布时间:2026-10-16| 6人浏览过
原创

本文介绍利用Python脚本将目录下所有源代码文件合并为单个文本以提高搜索效率的方法,同时提供生成文件名清单的辅助代码。通过os.walk遍历目录,可自定义后缀过滤,实现快速查找函数实例或生成源码索引。

Python多文件合并与源码清单生成方案

当完成一本书的学习,对常用技术和函数有了基本了解后,若想快速查找某个函数的具体实例代码,往往会感到困难。因为书籍的源代码目录通常很长,包含几十甚至上百个源文件,从中定位特定函数的实例并非易事。



为此,可以将所有源代码按照目录结构和文件名作为标签,全部合并到一个文件中,从而便于快速搜索和查找。通过这种方式,用户可以迅速定位到想要的实例,操作非常便捷。当然,分离的源代码文件依然具有价值,可以予以保留。合并后的源文件体积通常不大,约为n*100KB,打开和搜索速度都非常快。建议将同一种编程语言的所有实例通过此方法合并为一个文件,以显著提高搜索效率。



注意:保存代码后,需将源文件复制到目标目录下,系统会搜索该目录及其所有子目录;你可以添加后缀限定,仅获取特定格式文件的内容。源代码如下,请复制后保存:


复制代码

代码如下:


# -*- coding: utf-8 -*-



import os,sys


info = os.getcwd()


fout = open('note.tpy', 'w') # 合并内容到该文件



def writeintofile(info):


fin = open(info)


strinfo = fin.read()


# 利用##作为标签的点缀,你也可以使用其他的


fout.write('\n##\n')


fout.write('## '+info[-30:].encode('utf-8'))


fout.write('\n##\n\n')


fout.write(strinfo)


fin.close()




for root, dirs, files in os.walk(info):


if len(dirs)==0:


for fl in files:


info = "%s\%s" % (root,fl)


if info[-2:] == 'py': # 只将后缀名为py的文件内容合并


writeintofile(info)



fout.close()



如果你不想合并内容,只想获得一个文件名的清单文件,也可以。这里给你代码。例如,有的作者就会使用这个功能为自己生成一个源代码文件清单,很实用。



源代码为:


复制代码

代码如下:


# -*- coding: utf-8 -*-


'''

本程序自动搜索指定的目录,


打印所有文件的完整文件名到指定的文件中


'''

import os,sys


export = ""


i=1


for root, dirs, files in os.walk(r'..'):


#r'.'表示当前目录中的所有清单


#..表示平行的其他目录,多出很多内容


export += "--%s--\n%s\n\n%s\n\n" % (i,root,'\n'.join(files))


i=i+1


fp = open('cdcfile-4.txt', 'w')


fp.write(export)


fp.close()


相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。