在python中一次读取多个文件

问题描述 投票:0回答:1

我已经用python编写了一个代码,该代码读取文件的单个列,并根据我给出的if / else条件给出输出为'P'或'R'。我想更改它,使其在获取第一个P或R时停止读取文件,并将其打印为输出。另外,我有一千个这样的文件,因此每次运行它时都必须不断更改文件名。任何人都可以对此代码进行更改,以便我可以立即运行它并获得所有文件的输出吗?所有这些文件都在同一目录中,并且是目录中唯一的文件。谁能告诉我如何存储或打印对应文件的输出?

    f = open('/home/abc/xyz/coord/coord_348.xvg')


    dat = f.readlines()
    dat1 = dat[22:len(dat)]
    dat2=[]
    for k in dat1:
        dat2.append(k.split())
    res=[]
    for k in dat2:
        if float(k[1])>=9.5:
          print('P')
          res.append
        elif float(k[1])<=5.9:
          print('R')
          res.append
        else:
          res.append

    print(res)
python for-loop file-read
1个回答
0
投票

因此您可以像这样最初简化循环:

with open("file.xvg", "r") as f:
    for i, line in enumerate(f):
        if i < 22:
            # Skip up to line 22
            continue

        line = line.strip().split()

        # It isn't clear what you want to append to `res`
        if float(line[1]) >= 9.5:
            print("P")
            break  
        elif float(line[1]) <= 5.9:
            print("R")
            break  
        else:
            print("N")

这将解析文件,而不是将其读入列表并解析列表。 break语句使您跳出文件循环。

如果目录中有许多文件,您可以像这样通读它们:

break
© www.soinside.com 2019 - 2024. All rights reserved.