如何在python中打印缺少的行?

Gokul

我正在搜索文件中的特定行。如果我所需的行不存在,我想打印该行。例如,我的文件包含以下几行:

 list 0
 list 7
 list 2
 list 5

这是我到目前为止写的:

fo=open(filename,"r")
for i in range(0,6):
    str="list"+str(i)
    for line in fo.readlines():
        if not str in line:
            print "%s%s" %(str,"is missing in file"

请任何人帮助我

阿巴内特

第一个问题是它将list+str(i)无法正常工作,除非您碰巧在list = 'list '较早的位置进行了定义

第二个问题是,通过命名变量str,您将隐藏函数str,这意味着您下次无法在循环中调用该函数。

第三个问题是您只打开一次文件,但是调用readlines()了7次。第一次之后,不再需要读取任何行,因此您将获得一个空列表。只需在循环外调用一次,然后存储值:lines = fo.readlines()或者,也可以每次通过循环而不是一次重新打开文件。

第三个问题是,你要打印输出凡不行一次,而不是只有一个,如果任何行不匹配。这是唯一棘手的部分,因此我将继续讨论。

第四个问题是您的print陈述缺少)

最后,您已经用python-2.7和python-3.x标记了您的问题。我假设您不是在尝试添加世界上的每个标签,以希望能够吸引更多的观看者,并且实际上希望您的代码能够同时在2.7和3.3下运行。在这种情况下,您不能将其print用作语句。您必须将其用作功能。

那么,怎么说“如果字符串不在任何行中”?简单的方法是使用以下any功能:

if not any(s in line for line in lines):

如果您不明白这一点,则可以通过显式写出循环来获得相同的效果,如下所示:

found = False
for line in lines:
    if s in line:
        found = True
        break
if not found:

还有很多其他的问题,您应该解决(例如,关闭文件,最好使用一个with语句,避免readlines在可能的情况;等等),但没有更多的,你需要给修复。因此,这是经过最少编辑的工作版本:

fo=open(filename,"r")
lines = fo.readlines()
for i in range(0,6):
    s='list '+str(i)
    if not any(s in line for line in lines):
        print("%s%s" %(s,"is missing in file"))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Python中打印缺少值的列名称和缺少值的计数?

来自分类Dev

如何在python中实时打印长行?

来自分类Dev

如何在Python中的raw_input的行上打印?

来自分类Dev

如何在Python DictReader中打印单个行元素

来自分类Dev

如何在Python DictReader中打印单个行元素

来自分类Dev

如何在Python中打印列表的最后一行?

来自分类Dev

如何在python中打印%

来自分类Dev

如何在awk中打印新行

来自分类Dev

如何在python列表中打印上一行和下一行

来自分类Dev

如何在python中打印原始unicode?

来自分类Dev

如何在python数组中打印列?

来自分类Dev

如何在Python中打印树?

来自分类Dev

如何在Python中打印对象

来自分类Dev

如何在Python中打印字典

来自分类Dev

如何在python中暂停循环打印

来自分类Dev

如何在python中打印特殊字符

来自分类Dev

如何在Python中以斜体打印文本?

来自分类Dev

如何在python中打印最小集

来自分类Dev

如何在Python中打印Viariable的位

来自分类Dev

如何在python中打印C格式

来自分类Dev

如何在python中打印子矩阵?

来自分类Dev

如何在 Python 中打印大数?

来自分类Dev

如何在python 3中打印/获取Html文件中的特定行

来自分类Dev

如何在Spark中为每个组添加缺少的行

来自分类Dev

如何在DataFrame中创建/填充缺少的行?

来自分类Dev

如何在同一行中打印匹配的行?

来自分类Dev

如何在python中打印文件的所有行,例如用(“#”)注释

来自分类Dev

如何在python的一行中打印一些文本和函数结果?

来自分类Dev

如何在使用str.contains时打印列表中缺少的项目