为什么os.path.isfile(os.path.abspath("adb.exe"))
会返回false?
我的脚本目录中的adb.exe与os.path.isfile(os.path.abspath("fastboot.exe"))
相同
但是当我将它们复制到我的python目录,然后启动交互式shell时,例如。 os.path.isfile(os.path.abspath("adb.exe"))
给了我真实。
或者有更好的方法来验证文件是否存在于脚本目录中。
答案 0 :(得分:1)
os.path.isfile(os.path.abspath("adb.exe"))
返回False
的原因是因为当您运行脚本时,python实际上是从其安装目录运行的,不是脚本位置。
如果您想获取当前文件夹路径,可以使用:
os.path.dirname(os.path.abspath(__file__))
或@blakev建议:
os.path.split(__file__)[0]
因此,您可以使用以下命令检查脚本位置中是否存在文件:
os.path.isfile(os.path.dirname(os.path.abspath(__file__)) + os.sep + filename)
<小时/> 注意:
os.sep
包含操作系统文件系统使用的相应分隔符,因此Windows系统上为\
。
__file__
仅在运行脚本文件时存在,它不会在命令行中运行python。它返回脚本的完整路径和名称。例如,在我的桌面上运行名为 script.py 的脚本,它可能会返回C:\Users\Nick A\Desktop\script.py