python实现对目录下所有.py的遍历并写到一个文件中

最近需要了解某个用于分子动力学的库中的一个函数计算过程,但这个包中文件机构比较复杂,因此将所有.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文件,写到了一起
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值