Python无法使用Powershell找到路径

时间:2018-11-09 20:15:05

标签: python powershell visual-studio-code filepath

我有一个非常不寻常的问题。我写了一个需要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

1 个答案:

答案 0 :(得分:3)

根据您的评论,您的工作目录为

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'