最近需要了解某个用于分子动力学的库中的一个函数计算过程,但这个包中文件机构比较复杂,因此将所有.py文件及其内容写到一个txt文件中,然后寻找所有和这个函数相关的语句。
同样也可以用于包含多个word/excel文件的文件夹中,要查找某个关键词相关的内容,一个word一个word文件的去查找,往往是件很麻烦的事情,将路径下所有的word/excel文件放到一个文件中,是比较好的方法。
第一部分:获取所有文件:
import os
file = []
def getFlist(file_dir):
for root, dirs, files in os.walk(file_dir):
print('root_dir:', root)
print('\n')
print('sub_dirs:', dirs)
print('\n')
print('files:', files)
print('\n')
file.append(files)
return file
resDir = './phonopy-2.9.3'
flist = getFlist(resDir)
输出为这个路径下,所有的根目录和子目录中的文件
第二部分:
只获取.py文件:
#设计实现遍历目录与子目录,抓取.pyc 文件
import os
def getFiles(dir, suffix):
res = []
for root, dirs, files in os.walk(dir):
for filename in files:
name, suf = os.path.splitext(filename)
if suf == suffix:
res.append(os.path.join(root, filename))
#print(res)
return res
res = getFiles("./", '.py')
print('\n')
print(len(res))
for i in res:
print(i)
输出结果:
第三部分:将所有.py文件写入到一个txt文件中:
# -*- coding:utf-8 -*-
import xlsxwriter
#设计实现遍历目录与子目录,抓取.pyc 文件
import os
def getFiles(dir, suffix):
res = []
for root, dirs, files in os.walk(dir):
for filename in files:
name, suf = os.path.splitext(filename)
if suf == suffix:
res.append(os.path.join(root, filename))
print(res)
return res
res = getFiles("./", '.py')
print('\n')
print(len(res))
for i in res:
with open(i, "r", encoding="UTF-8") as f:
lines = f.readlines()
f = open('./file.txt', 'a', encoding='utf-8')
f.write('\n')
f.write(i)
f.write('\n')
for l in lines:
# print(l)
f = open('./file.txt','a',encoding='utf-8')
f.write(l)
成功的将一个目录下所有的.py文件,写到了一起