簡體   English   中英

如何讀取特定位置字符串,如果它們匹配,然后在 python 中打印所有行?

[英]How read specific positions strings and if they match, then print all the line in python?

我正在學習蟒蛇。 我想做這個:

我有一個文本文件,有很多這樣的行(每行有 26 個字符串,有些字符串可以是空格,也可以不是空格,后面是行數):

      BBBTHTHTTTTCCCHHHHHH       1
CCCTTTTHHHHHHHHHHHTTTTTTTT       2
TTTTTTTTTTHHHHHHHHCCCCCC         3
CTCTTTTTTTTTTTTTTHHHHHHHHH       4     

我想從 22 到 26 位置讀取字符串,如果所有這些位置都是 H,則打印完整行。 例如:

      BBBTHTHTTTTCCCHHHHHH       1
CTCTTTTTTTTTTTTTTHHHHHHHHH       4 

我的腳本是這樣的

f = open("file.txt", "r")
lines = [line for line in f.readlines() if line[22:26]=="H"]
print lines

有人可以幫我解決嗎? 感謝您的支持和提示。

嘗試這個:

with open('file.txt') as f:
    for i in f:
        if i[21:26]=='HHHHH':
            print(i)

您可以使用split()endswith()

res = [line for line in f if line.split()[0].endswith('H' * (26 - 21))]
print(res)

輸出:

[' BBBTHTHTTTTCCCHHHHHH       1', 'CTCTTTTTTTTTTTTTTHHHHHHHHH       4']

有可能 :

with open('file.txt') as f:
    lines = '\n'.join([l for l in f.read().splitlines() if l[22:26] == 'HHHH'])
print(lines)

暫無
暫無

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

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