python - 为什么os.path指的是项目路径而不是文件路径?

标签 python python-3.x

这是文件夹的结构:

- 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项目打开,如下所示:

s

结果是

但是今天我不小心打开了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/

相关文章:

Python crypt.crypt 不使用 sha512 尽管 $6$

python - Celery:有没有办法编写自定义 JSON 编码器/解码器?

python - numpy中的不规则切片

python - 使用 Python 脚本在 Power BI 中创建新列

python - 使用 Xlib 在 python 中获取窗口位置和大小

python - pgAdmin4 错误 : ModuleNotFoundError: No module named 'email_validator'

python - 删除查询集时Django ValidationError

python - 发生错误时如何不让 Flask 服务器崩溃?

python - 类型错误 : unsupported callable using Dataset with estimator input_fn

python - 比较有序列表和计算公共(public)元素*包括*重复项的最快方法