使用python读取特定行并忽略其他行

2024-10-02 18:16:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个文本文件:

input file
yuorvsdsd
dfdsfsd
?dsfsdfsd
sdfsdfs
?dfd
ds

我试图使它只读取以?开头的行。readlines函数读取所有行,因此我对它设置了一个条件,但我对它不满意,因为它没有向我显示准确的结果。我希望output成为:

?dsfsdfsd
?dfd

程序

fp = open("file.txt")
z = fp.readlines
if z=='?':
    print z
fp.close() 

这是我试过的密码。你知道吗


Tags: 函数程序inputoutputds条件file文本文件
3条回答

列表理解使这变得简单:

filtered = [line for line in fp.readlines() if line.startswith("?")]

我将使用以下内容:

with open("file.txt") as fp:
    for line in fp:
        if line.startswith('?'):
            print line

通过使用上下文管理器(with ... as),文件的关闭将在您完成后自动进行。你知道吗

我想我应该用一个生成器表达式:

(line for line in open('file.txt') if line.startswith('?'))

完整的程序如下所示:

lines = (line for line in open('file.txt') if line.startswith('?'))
print ''.join(lines)

相关问题 更多 >