如何打开文件名包含在字符串中的 Python 文件?

How do I open a file with Python with the file name contained in a String?

如果文件名的一个单词包含在字符串中,有没有办法打开文件?在这里,我将单词 keys 存储在变量 'query' 中,我希望如果单词 'keys' 是字符串 'query' 的值,它应该打开文件 'keys in drawer.txt' 作为它包含单词 keys,或者如果 'query' 的值是 'pen',它应该打开文件 'pen on table'.txt。 这是 table.txt 文件上的笔:

pen is on the table

drawer.txt

中的键
the keys are in the drawer

我该怎么做?我知道这有点复杂,但请尝试回答这个问题,我最近 2 天就在处理这个问题!

query=("keys")
list_directory=listdir("E:\Python_Projects\Sandwich\user_data\Remember things\")
     
 if query in list_directory: 
                with open(f"E:\Python_Projects\Sandwich\user_data\Remember things\ 
                {list_directory}",'r') as file:
                    read_file=file.read
                    print(read_file)
                    file.close
                    pass

由于某种原因此代码无效。

read() 和 close() 是方法,不是属性。你应该写 file.read() 而不是 file.read。此外,使用with关键字时关闭文件是多余的。

list_directory 是字符串列表,不是字符串。这意味着您需要对其进行迭代,以便将列表中的每个字符串与您的查询进行比较

调用file.readfile.close方法的时候还需要加上括号(file.read()file.close()),否则不会执行。

这段重新编写的代码应该可以解决问题:

query = "keys"
path = "E:\Python_Projects\Sandwich\user_data\Remember things\"

list_directory = listdir(path)
for file_name in list_directory:
    if query in file_name:
        with open(f"{path}{file_name}",'r') as file:
            content = file.read()
            print(content)
            file.close()