查找不包含某些文本字符串的所有文本文件

 Nicole-sasanh_880 发布于 2023-02-11 09:44

我在Python 2.7.1上,我正在尝试识别所有包含某些文本字符串的文本文件.

该程序似乎最初工作,但每当我将文本字符串添加到文件时,它就会不断出现,就好像它不包含它一样(误报).当我检查文本文件的内容时,字符串显然存在.

我试着写的代码是

def scanFiles2(rdir,sstring,extens,start = '',cSens = False): 
    fList = []
    for fol,fols,fils in os.walk(rdir): 
        fList.extend([os.path.join(rdir,fol,fil) for fil in fils if fil.endswith(extens) and fil.startswith(start)]) 
    if fList: 
        for fil in fList: 
            rFil = open(fil) 
            for line in rFil: 
                if not cSens: 
                    line,sstring = line.lower(), sstring.lower() 
                if sstring in line:
                    fList.remove(fil) 
                    break
            rFil.close() 
    if fList:
        plur = 'files do' if len(fList) > 1 else 'file does'
        print '\nThe following %d %s not contain "%s":\n'%(len(fList),plur,sstring) 
        for fil in fList: 
            print fil 
    else: 
        print 'No files were found that don\'t contain %(sstring)s.'%locals() 
scanFiles2(rdir = r'C:\temp',sstring = '!!syn',extens = '.html', start = '#', cSens = False) 

我想代码中有一个缺陷,但我真的没有看到它.

UPDATE

该代码仍然出现了许多误报:该文件包含搜索字符串,但被确定为不包含它.

难道文本编码是一个问题吗?我将搜索字符串U作为Unicode编码的前缀,但它没有任何区别.

Python以某种方式缓存文件内容吗?我不这么认为,但这可能在一定程度上解释了文件在纠正后仍然弹出.

某种恶意软件会引起这样的症状吗?对我来说似乎不太可能,但我有点想要解决这个问题.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有