如何读取特定位置字符串,如果它们匹配,则打印 python 中的所有行?
How read specific positions strings and if they match, then print all the line in python?
我正在学习 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)
我正在学习 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)