尝试通过变量使用 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")
我有一个名为 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")