我有一个名为serial.dll
的文件。该文件的内容是另一个文件的名称:
a-2ED1-7156.dll
我在同一目录中还有一个名为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")
始终给出正确的结果。
如何通过从a-2ED1-7156.dll
文件中读取文件来检查文件serial.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
答案 0 :(得分:1)
假设每个文件都在单独的行中,您可以使用
lines = f.readlines()
for line in lines:
if os.path.exists(line):
print('ok')
或仅在所有文件都存在时才打印,具体取决于您想要的内容。
答案 1 :(得分:0)
您的问题是文件中的行可能以换行符结尾。文件名通常不包含该字符。例如,现在您正在检查文件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")