繁体   English   中英

python脚本在目录和子目录中的文件中搜索字符串

[英]python script searching for a string in files in directory and subdirectories

我有一个python脚本,用于在目录及其子目录中的文件中搜索字符串。


import os
from sys import argv

print(argv)

searchStr = argv[1]

def searchDir(dirCurrent):

    try:
        main_directory = os.listdir(dirCurrent)

        for item in main_directory:

            item_path = os.path.join(dirCurrent, item)
            if os.path.isdir(item_path) == True:
                searchDir(item_path)
            else: 
                f = open(item_path, 'r')
                file_contents = f.read()
                if searchStr in file_contents:
                    print("found in file " + item_path)     
    except:
        print("Unable to access the directory " + dirCurrent)

searchDir("C:\\Users\\myname-adm\\Documents") 

它可以运行,但是当遇到没有读取权限的文件夹时,脚本将停止。 如何修改它,以便它可以继续搜索而跳过没有读权限的文件夹?

谢谢您的帮助。

这应该可以解决问题:

import os from sys import argv

print(argv)

searchStr = argv[1]

def searchDir(dirCurrent):

        main_directory = os.listdir(dirCurrent)

        for item in main_directory:
            try:
                item_path = os.path.join(dirCurrent, item)
                if os.path.isdir(item_path) == True:
                    searchDir(item_path)
                else: 
                    f = open(item_path, 'r')
                    file_contents = f.read()
                    if searchStr in file_contents:
                        print("found in file " + item_path)     
            except:
                print("Unable to access the directory " + dirCurrent)

searchDir("C:\\Users\\myname-adm\\Documents")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM