尝试通过变量使用 os.path.exists 但出现错误

Trying to use os.path.exists via variables but getting an error

我有一个名为 serial.dll 的文件。此文件的内容是另一个文件的名称:

a-2ED1-7156.dll

我在同一目录中还有 1 个名为 a-2ED1-7156.dll 的文件。

当我尝试通过从 serial.dll:

读取文件名来检查文件是否存在时
f = open('serial.dll', 'r')

serials = f.read()

if os.path.exists(serials):
    print("ok")
else:
    print("no")

始终结果为“否”。

但是:

file = 'a-2ED1-7156.dll'

if os.path.exists(file):
    print("ok")
else:    
    print("no")

总是给出正确的结果。

如何通过从 serial.dll 文件中读取来检查文件 a-2ED1-7156.dll 是否存在?

Update Try: 

f = open('serial.dll', 'r')
lines = f.readline()
for line in lines:
    if os.path.exists(line):
        print('ok')
    else:
        print("no")

results error:
no
no
no
no
no
no
no
no
no
no
no
ok
no
no
no
no

假设每个文件都在单独的一行中,您可以使用

lines = f.readlines()
for line in lines:
    if os.path.exists(line):
        print('ok')

或者仅当所有文件都存在时才打印,具体取决于您的需要。

您的问题是文件中的行可能以 new-line 字符结尾。文件名通常没有那个字符...例如,现在您正在检查文件 a-2ED1-7156.dll\n 是否存在 - 但事实并非如此。您只需 strip() 这些行,然后再将它们检查为文件:

f = open('serial.dll')

for line in f:
    filename = line.strip()
    if os.path.exists(filename):
        print(f"{filename} exists")
    else:
        print(f"{filename} doesn't exist")