如何在所需文档之前遍历文件夹?

时间:2019-04-04 11:44:32

标签: python python-3.x loops directory glob

我正在尝试编写一个脚本,该脚本将从.xvg文件中收集值。我有20个包含目标文件的文件夹。文件夹的编号从1到20(在代码中看到1.Rimo)

我已经编写了指定全路径时收集数据的代码,但是,我需要一些通用的东西,因此我可以遍历这20个文件夹,获取该数据并将其存储为变量。

rmsf = open('/home/alispahic/1.CB1_project/12.ProductionRun/1.Rimo/rmsf.xvg','r+')

for line in rmsf:   
    if line.startswith(' 4755'):
        print (line)
        l = line.split()
        print (l)       
        value = float(l[1])
        sum1 = float(sum1) + value
        print(len(l))
        print (sum1)

2 个答案:

答案 0 :(得分:0)

您可以使用os.listdir()

base_path = '/home/alispahic/1.CB1_project/12.ProductionRun'
file_name = 'rmsf.xvg'

for dir_name in os.listdir(base_path):
    print(dir_name)
    with open(os.path.join(base_path, dir_name, file_name)) as f:
        for line in f:
            # here goes your code
            pass

仅记得将dir_namebase_path(要遍历的目录路径)连接起来。

还请注意,这也会返回文件,而不仅仅是目录。如果您的文件夹/home/alispahic/1.CB1_project/12.ProductionRun仅包含目录,则不会有问题;否则,您将需要过滤掉文件。

答案 1 :(得分:0)

我已经通过添加glob解决了这个问题。

for name in glob.glob('/home/alispahic/1.CB1_project/12.ProductionRun/*/rmsf.xvg'):

    for line in open(name):
        if line.startswith(' 4755'):