os.path.isfile(os.path.abspath(“adb.exe”))返回false

时间:2017-10-11 16:20:06

标签: python windows python-3.6

为什么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"))给了我真实。 或者有更好的方法来验证文件是否存在于脚本目录中。

1 个答案:

答案 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