为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

墨色风雨 2024-01-15 17:10:27
我有一个名为serial.dll. 该文件的内容是另一个文件的名称:a-2ED1-7156.dll我还在a-2ED1-7156.dll同一目录中调用了 1 个文件。当我尝试通过读取文件名来检查文件是否存在时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:nononononononononononooknononono
查看完整描述

2 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

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


lines = f.readlines()

for line in lines:

    if os.path.exists(line):

        print('ok')

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


查看完整回答
反对 回复 2024-01-15
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

您的问题是文件中的行可能以换行符结尾。文件名通常没有该字符...例如,现在您正在检查文件是否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")


查看完整回答
反对 回复 2024-01-15
  • 2 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信