亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在python中一次讀取多個文件

在python中一次讀取多個文件

炎炎設計 2022-09-20 16:42:21
我用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)
查看完整描述

1 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

因此,您最初可以簡化循環,如下所示:


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


查看完整回答
反對 回復 2022-09-20
  • 1 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號