python將多個文本文件合并為一個文本的代碼(便于搜索)
2020-02-23 04:47:06
供稿:網友
但是,當一本書學過之后,對一般的技術和函數都有了印象,突然想要查找某個函數的實例代碼時,卻感到很困難,因為一本書的源代碼目錄很長,往往有幾十甚至上百個源代碼文件,想要找到自己想要的函數實例談何容易?
所以這里就是要將所有源代碼按照目錄和文件名作為標簽,全部合并到一處,這樣便于快速的搜索。查找,不是,那么查找下一個……于是很快便可以找到自己想要的實例,非常方便。當然,分開的源代碼文件依然很有用,同樣可以保留。合并之后的源代碼文件并不大,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()