Python 如何从文本文件中提取行(包含特定字符)?

Python 如何从文本文件中提取行(包含特定字符)?,python,Python,我有这样一个文本文件: aaa:bbb:ccc:dd:ooo fff:ggg:sddfg:sfsf:s8fsdf fsdfsd:ghfgh:fsdd:bbf:tyuter:fgdfg dfgdjrth:hdfg:HDfgsdjtyerER:Ghdrsg:Hdsg8hdd:ssfd 我需要一种只提取包含数字8的行的方法。 在这种情况下,输出应为: fff:ggg:sddfg:sfsf:s8fsdf dfgdjrth:hdfg:HDfgsdjtyerER:Ghdrsg:Hdsg8hdd:ssfd

我有这样一个文本文件:

aaa:bbb:ccc:dd:ooo
fff:ggg:sddfg:sfsf:s8fsdf
fsdfsd:ghfgh:fsdd:bbf:tyuter:fgdfg
dfgdjrth:hdfg:HDfgsdjtyerER:Ghdrsg:Hdsg8hdd:ssfd
我需要一种只提取包含数字8的行的方法。 在这种情况下,输出应为:

fff:ggg:sddfg:sfsf:s8fsdf
dfgdjrth:hdfg:HDfgsdjtyerER:Ghdrsg:Hdsg8hdd:ssfd
在python中有这样做的方法吗?

试试以下方法:

打开('test.txt',rt')作为myfile的
:
对于myfile中的myline:
如果myline中的“8”:
打印(myline.rstrip(“\n”))
您只需检查一行中是否有
“8”
。我为此使用了if语句。如果有,就打印出来

myline.rstrip(“\n”)
的功能是删除末尾的
\n
如果不使用它,这是您的输出:

fff:ggg:sddfg:sfsf:s8fsdf

dfgdjrth:hdfg:HDfgsdjtyerER:Ghdrsg:Hdsg8hdd:ssfd
然而,使用它,这是您的输出,我认为这是您想要的:

fff:ggg:sddfg:sfsf:s8fsdf
dfgdjrth:hdfg:HDfgsdjtyerER:Ghdrsg:Hdsg8hdd:ssfd
行=打开(文件“r”) 对于行中的行: 如果行中有“8”: 打印(行)

不像前一个那样简短或优化,但更易于理解;)

在您的情况下,
lines=open(文件,“r)

给予


这几乎肯定是一个重复的问题,但这里有一个1行的快速示例:
[line for line in open(文件'r'),如果'8'in line]
这是否回答了您的问题?
lines =  ["aaa:bbb:ccc:dd:ooo",
"fff:ggg:sddfg:sfsf:s8fsdf",
"fsdfsd:ghfgh:fsdd:bbf:tyuter:fgdfg",
"dfgdjrth:hdfg:HDfgsdjtyerER:Ghdrsg:Hdsg8hdd:ssfd"]
for line in line:
    if "8" in line:
        print(line)
fff:ggg:sddfg:sfsf:s8fsdf
dfgdjrth:hdfg:HDfgsdjtyerER:Ghdrsg:Hdsg8hdd:ssfd