Python - 打开文件夹中的所有 .txt 并检查匹配变量的行

我有一个 keys1.txt、keys2.txt、keys3.txt 和 keys4.txt 我的程序需要输入类似ABC123


我必须通过程序检查 keys1.txt 是否有该输入的行。如果没有,它会转到 keys2.txt 等。


该文件必须检索 txt 文件的名称,名称不能是源代码上的硬编码。如果我对文件名进行硬编码,我知道如何执行此操作,但在这种情况下无法完成。


目前我让它检查文件名并将它们放在列表中并打开所有文件。我确实在检查我的密钥是否属于任何文件时遇到问题,如果是,则要了解它属于哪个文件。


file_list = next(os.walk("Keys"))[2]

    print(file_list)

    for filename in file_list:

        with open("Keys" + filename) as f_obj:

            f_obj

所有的文件看起来像


QWE123


ASY981


ASD192


...


米脂
浏览 150回答 3
3回答

陪伴而非守候

如果您需要打开这些文件但不能将它们硬编码到程序中,您可能必须将它们作为命令行参数获取。然后你可以像这样执行你的程序:$ python code.py ABC123 keys1.txt keys2.txt keys3.txt

动漫人物

遍历每个 .txt 文件和该文件中的行(您尚未指定这些 txt 文件的外观)。检查与各种方法的匹配,我需要更多详细信息以及您到目前为止尝试提供的帮助。

子衿沉夜

您可以使用os.listdir它来获取随后将遍历的文件列表。参考: https: //docs.python.org/3/library/os.html#os.listdirfiles_list = os.listdir('/path/to/keys')  # ['keys1.txt', ...]search_string = 'ABC1234'found = Falsefor file in files_list:    if found:        break    with open(file, 'r') as fo:        for line in fo:            if line == search_string:                found = file                breakprint(f'Found line `{search_string}` in file `{found}`.}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python