簡體   English   中英

在python中一次讀取多個文件

[英]Reading multiple files at once in python

我在 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)

所以你可以像這樣簡化你的循環:

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語句使您退出文件循環。

如果目錄中有很多文件,您可以像這樣閱讀它們:

from pathlib import Path

for file in Path("/path/to/directory").rglob("*.xvg"):
    with file.open("r") as f:
        for i, line in enumerate(f):
            # Same logic as above
            pass

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM