【问题标题】:I'm trying to search multiple directories with hundreds of different text files with random text in them, but I'm struggling我正在尝试搜索包含数百个不同文本文件的多个目录,其中包含随机文本,但我正在努力
【发布时间】:2022-12-30 19:22:02
【问题描述】:

我在多个文件夹中有数百个小文本文件。每个文本文件中都有大量随机字母和符号,我的任务是查找某些信息,例如“HSBC”和“91274163”等。我对编码很陌生,而且我很挣扎,我没有很长的时间来完成这项工作,所以如果有人能提供帮助,我将不胜感激

import os
FILENAMES=[]

for root, dirs, files in os.walk(r"****MY PATH****"):
    for filename in files:
        if filename.endswith(".txt"):

            FILENAMES.append(filename)
            print(filename)

print('\n')

这是我的代码的第一部分,显示所有文本文件然后退出。

for FILENAME in FILENAMES:
    print(FILENAME," contains the following function:\n")
    f1=open(FILENAME,'r')
    for line in f1:
        if ("HSBC") in line:
            print(line)
        else:
            pass
    print('\n')
    f1.close()

只要我添加这部分代码,我就会得到“

f1=open(FILENAME,'r')
       ^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'File-06Ijg.txt'

我尝试了许多其他脚本,我遇到了各种不同的编码错误等。至少使用这个脚本我可以显示所有文本文件所以我试图弄清楚这个

【问题讨论】:

    标签: python search os.walk


    【解决方案1】:

    试试这个:

    import os
    FILENAMES=[]
    
    for root, dirs, files in os.walk(r"****MY PATH****"):
        for filename in files:
            if filename.endswith(".txt"):
    
                FILENAMES.append(os.join(dirs, filename))
                print(filename)
    
    print('
    ')
    
    for FILENAME in FILENAMES:
        print(FILENAME," contains the following function:
    ")
        f1=open(FILENAME,'r')
        for line in f1:
            if ("HSBC") in line:
                print(line)
            else:
                pass
        print('
    ')
        f1.close()
    

    【讨论】: