【发布时间】:2017-09-04 11:11:41
【问题描述】:
我正在尝试使用 python 搜索文件目录并打开每个文件以搜索字符串。
我们所说的文件少于 1000 个,每个文件有 1、2、3 行,因此打开它们只需几秒钟。
好吧,我想我已经成功了,但是有一个问题:我要搜索的字符串是“exit 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 文件的数量,但如果将字符串更改为 exit 1,则最后“teste”的值是 0。我实际上是在搜索其中一些文件中存在的“exit 0”字符串。
有可能吗?我已经对其进行了测试,如果我将字符串值更改为存在的值,则计数是正确的。
有什么帮助吗?
谢谢,
【问题讨论】:
-
当您打印“line”变量时,您会得到什么?是否包含“exit 0”字符串?
-
您计算的是 number 行,而不是文件数。要计算文件数,请在文件中找到匹配项后中断。