Python在所有文件中搜索“exit 0”字符串

2024-05-20 22:04:04 发布

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

我尝试使用python搜索一个文件目录,打开每个文件来搜索一个字符串。你知道吗

我们讨论的是不到1000个文件,每个文件有1、2、3行,所以打开它们只需要几秒钟。你知道吗

嗯,我想我成功了,但有一个问题:我要搜索的字符串是“退出0”。你知道吗

#!/usr/bin/env python

import glob

scriptsdir = "/dummydir/*.ksh"
string = "exit 0"
files = glob.glob(scriptsdir)
teste = 0

for script in files:
    f=open(script,"r")
    for line in f:
        if string in line:
            teste = teste + 1
    f.close()    
print teste

这很糟糕,因为代码正在工作:这样,末尾的“teste”值表示目录中.ksh文件的数量,但如果将字符串更改为退出1,则结尾的“teste”值为0。我正在搜索一些文件中存在的“退出0”字符串。你知道吗

有可能吗?我已经对它进行了测试,如果我将字符串值更改为某个存在的值,则计数是正确的。你知道吗

有什么帮助吗?你知道吗

谢谢你


Tags: 文件字符串inforstringusrlinescript
3条回答

你可以继续阅读所有的内容f.read()。你知道吗

#!/usr/bin/env python
import glob
scriptsdir = "/dummydir/*.ksh"
string = "exit 0"
files = glob.glob(scriptsdir)
teste = 0

for script in files:
    f=open(script,"r")
    if string in f.read():
        teste = teste + 1
    f.close()    
print teste

对于每一个匹配的行,计数器都会增加;如果一个文件不止一次地包含该字符串,那么对于每个匹配项,计数器都会增加。你知道吗

您可以通过在计数器增量后添加一个中断来修复此问题。这将导致Python直接转到下一个文件。你知道吗

谢谢你的评论。当我开始打印“line”值时,我注意到他正在从其他地方获取“exit 0”,再次查找脚本,发现在已写入exit 0的文件中调用了第三个脚本。你知道吗

我不同意这种做事方式,但我没有足够的能力来改变做事的方式,所以在那之后我可以解决我的问题,并看到搜索“出口0”根本不是我的问题。你知道吗

干杯

相关问题 更多 >