这是文件夹的结构:
- python
- python study
- study.py
- a.txt
study.py中的代码是:
import os
if(os.path.exists("a.txt")):
print("YES") # my real code is not this
else:
print("NO")
通常我将python Study
文件夹作为pycharm项目打开,如下所示:
结果是是
。
但是今天我不小心打开了python
文件夹(不是python Study
)作为pycharm项目并运行代码。
结果是否
。最后,我发现它引用的是python
(项目路径)而不是.py文件的文件夹。这样做的目的是什么?
之后,我在cmd中运行这段代码,结果是YES
。
我认为与其他人一起开发项目时有时会带来一些问题。(如果有人使用记事本而不是pycharm来编辑代码并在cmd中运行代码)。
最佳答案
如果不指定文件的绝对路径,则假定该文件位于工作目录中。
当您从工作目录 python
文件夹打开项目时,os.path.exists('a.txt')
实际上正在查找该文件python
文件夹中的“a.txt”。
为了使您的脚本独立于工作目录。您应该使用相对路径。
您可以使用__file__
来引用您的脚本。您可以使用 os.path.dirname 获取脚本的目录。
所以我认为你应该修改你的代码
import os
fname = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'a.txt')
if(os.path.exists(fname)):
print("YES")
else:
print("NO")
关于python - 为什么os.path指的是项目路径而不是文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59579015/