python将多个文本文件合并为一个文本的代码(便于搜索)

yipeiwu_com7年前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集合类型用法分析

本文实例分析了python集合类型用法。分享给大家供大家参考。具体分析如下: python的集合类型和其他语言类似, 是一个无序不重复元素集,我在之前学过的其他的语言好像没有见过这个类型...

Python基于Flask框架配置依赖包信息的项目迁移部署

Python基于Flask框架配置依赖包信息的项目迁移部署

一般在本机上完成基于Flask框架的代码编写后,如果有接口或者数据操作方面需求需要把代码部署到指定服务器上。 一般情况下,使用Flask框架开发者大多数都是选择Python虚拟环境来运行...

Python 实现微信防撤回功能

Python 实现微信防撤回功能

在微信上突然看到“XXX撤回一条消息”的时候,心里痒不痒?现在就教你如何实现消息防撤回的功能。不限手机型号、手机无需root,只要微信号可以登上网页版就可以了(部分不常用和新申请的账号会...

详解python 拆包可迭代数据如tuple, list

拆包是指将一个结构中的数据拆分为多个单独变量中。 以元组为例: >>> a = ('windows', 10, 25.1, (2017, 12, 29)) 假设数...

详解Python中的__new__、__init__、__call__三个特殊方法

__new__: 对象的创建,是一个静态方法,第一个参数是cls。(想想也是,不可能是self,对象还没创建,哪来的self) __init__ : 对象的初始化, 是一个实例方法,第一...