Python 无法使用 Powershell 找到路径
Python can't find path with Powershell
我有一个不寻常的问题。我写了一个需要 API 键的 python 脚本。因为我不希望它们在互联网上四处飘荡,所以我创建了一个带有密钥的单独的 .json 并将其添加到 .gitignore。到目前为止一切顺利。
我用VSCode写了程序,我可以毫无问题地执行它。但是当我尝试将我的程序与普通的 PowerShell 一起使用时,它根本无法工作。我在外部 PS 上 运行 时收到此错误消息:FileNotFoundError: [Errno 2] No such file or directory: './master-folder/key.json'
我为软件包使用了 virtualenv,但这应该不会影响任何东西(当然我在 PS 中激活了它)。这是代码的一部分:
keys_fp = './master-folder/key.json'
keys = load(open(keys_fp, 'r'))
文件夹结构如下:
.
├── programs
│ └── program.py
└── key.json
根据您的意见,您的工作目录是
E:\Git\master-folder\programs\
在你的脚本中,你引用了
./master-folder/key.json
解析为
E:\Git\master-folder\programs\master-folder\key.json
但这不存在。如果您调整脚本以使用正确的路径,它应该可以解决您的问题:
keys_fp = f'{os.getcwd()}\..\key.json'
根据 this answer,您可以通过以下方式访问脚本的根目录:
import os
root = os.path.dirname(os.path.realpath(__file__))
keys_fp = f'{root}\..\key.json'
我有一个不寻常的问题。我写了一个需要 API 键的 python 脚本。因为我不希望它们在互联网上四处飘荡,所以我创建了一个带有密钥的单独的 .json 并将其添加到 .gitignore。到目前为止一切顺利。
我用VSCode写了程序,我可以毫无问题地执行它。但是当我尝试将我的程序与普通的 PowerShell 一起使用时,它根本无法工作。我在外部 PS 上 运行 时收到此错误消息:FileNotFoundError: [Errno 2] No such file or directory: './master-folder/key.json'
我为软件包使用了 virtualenv,但这应该不会影响任何东西(当然我在 PS 中激活了它)。这是代码的一部分:
keys_fp = './master-folder/key.json'
keys = load(open(keys_fp, 'r'))
文件夹结构如下:
.
├── programs
│ └── program.py
└── key.json
根据您的意见,您的工作目录是
E:\Git\master-folder\programs\
在你的脚本中,你引用了
./master-folder/key.json
解析为
E:\Git\master-folder\programs\master-folder\key.json
但这不存在。如果您调整脚本以使用正确的路径,它应该可以解决您的问题:
keys_fp = f'{os.getcwd()}\..\key.json'
根据 this answer,您可以通过以下方式访问脚本的根目录:
import os
root = os.path.dirname(os.path.realpath(__file__))
keys_fp = f'{root}\..\key.json'