我有一个 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所有的文件看起来像QWE123ASY981ASD192...
3 回答
陪伴而非守候
TA贡献1757条经验 获得超8个赞
如果您需要打开这些文件但不能将它们硬编码到程序中,您可能必须将它们作为命令行参数获取。然后你可以像这样执行你的程序:
$ python code.py ABC123 keys1.txt keys2.txt keys3.txt
动漫人物
TA贡献1815条经验 获得超10个赞
遍历每个 .txt 文件和该文件中的行(您尚未指定这些 txt 文件的外观)。检查与各种方法的匹配,我需要更多详细信息以及您到目前为止尝试提供的帮助。
子衿沉夜
TA贡献1828条经验 获得超3个赞
您可以使用os.listdir它来获取随后将遍历的文件列表。
参考: https: //docs.python.org/3/library/os.html#os.listdir
files_list = os.listdir('/path/to/keys') # ['keys1.txt', ...]
search_string = 'ABC1234'
found = False
for file in files_list:
if found:
break
with open(file, 'r') as fo:
for line in fo:
if line == search_string:
found = file
break
print(f'Found line `{search_string}` in file `{found}`.}
添加回答
举报
0/150
提交
取消