如何解决如何读取特定位置的字符串,如果它们匹配,然后在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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。