gpt4 book ai didi

python - 如何检查文件内的所有文件夹和文件内的子文件夹是否存在特定字符串

转载 作者:行者123 更新时间:2023-12-04 12:17:54 28 4
gpt4 key购买 nike

  • 我有文件夹和文件
  • 我也有子文件夹和文件
  • 我需要搜索同一文件中也存在的特定字符串,而其他字符串不存在
  • 所有文件都在 .txt
  • 我需要检查文件是哪个字符串 20210624存在于文件和字符串中 20210625不在文件中
  • 我的输出返回文件名
  • import os
    match_str = ['20210624']
    not_match_str = ['20210625']
    for root, dirs, files in os.walk(path):
    for name in files:
    if name.endswith((".txt")):
    ## search files with match_str `20210624` and not_match_str `20210625`

    我可以使用 import walk

    最佳答案

    您可以设置 recursive glob.glob() 中的关键字参数方法 True让程序递归搜索文件夹、子文件夹等的文件。

    from glob import glob

    path = 'C:\\Users\\User\\Desktop'
    for file in glob(path + '\\**\\*.txt', recursive=True):
    with open(file) as f:
    text = f.read()
    if '20210624' in text and '20210625' not in text:
    print(file)
    如果您不想打印文件的整个路径;只有文件名,然后:
    from glob import glob

    path = 'C:\\Users\\User\\Desktop'
    for file in glob(path + '\\**\\*.txt', recursive=True):
    with open(file) as f:
    text = f.read()
    if '20210624' in text and '20210625' not in text:
    print(file.split('\\')[-1])

    为了使用 os.walk() 方法,您可以使用 str.endswith() 方法(正如您在帖子中所做的那样),如下所示:
    import os

    for path, _, files in os.walk('C:\\Users\\User\\Desktop'):
    for file in files:
    if file.endswith('.txt'):
    with open(os.path.join(path, file)) as f:
    text = f.read()
    if '20210624' in text and '20210625' not in text:
    print(file)
    并在最大级别的子目录中搜索:
    import os

    levels = 2
    root = 'C:\\Users\\User\\Desktop'
    total = root.count('\\') + levels

    for path, _, files in os.walk(root):
    if path.count('\\') > total:
    break
    for file in files:
    if file.endswith('.txt'):
    print(os.path.join(path, file))

    关于python - 如何检查文件内的所有文件夹和文件内的子文件夹是否存在特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68115002/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com