Python脚本实现多文件合并与源码清单生成
本文介绍利用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()
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









