[英]My Python Script can't find a JSON file in the same directory
我正在使用 API star 0.5.X 在 python 3.7 中練習一些 API 的作品,而我的 python 腳本找不到與 python 文件位於同一文件夾中的 .json 文件。 我正在使用 Atom 編輯器編寫和運行腳本,我正在使用 venv,這對我來說是相當新的。
我正在使用助手 function 使用“with open()”語句加載 JSON 數據。 我嘗試過使用相對和絕對文件路徑,但在這兩種情況下都無法找到文件。 我嘗試使用終端和 MacOS 查找器在 Atom 中啟動文件。 這是我到目前為止所擁有的:
import json
from typing import List
import os
from apistar import App, Route, types, validators
from apistar.http import JSONResponse
print(os.getcwd())
os.chdir('/Users/{myusernamehere}/100days/apistar')
print(os.getcwd())
#helpers
def _load_employee_data():
with open('employees.json') as f:
employees = json.loads(f.read())
return employees
第二個打印語句打印出正確的文件路徑,即“employees.json”和“app.py”所在的路徑。
由於問題特定於您的設置,因此很難在代碼中重現或提供解決方案。 您的代碼本身看起來不錯,但有兩件事可能是導致您出現問題的原因:
/path/to/your/venv/Scripts/activate.sh
requirements.txt
的內容,以便在新的虛擬環境中輕松地在不同機器上重新安裝相同的模塊。由於 Atom 編輯器的工作方式,這是一個問題。 改用vim解決了。
我只是部分理解,但顯然這與 Atom 有一個單獨的臨時目錄來存放工作文件或類似的東西有關。 使用vim編輯腳本,然后在終端調用,問題解決。
好的,所以我對 i.c.w 也有同樣的問題。 代碼:
file = open('file.txt')
print(file.name)
導致FileNotFoundError
file.txt 100% 在同一個文件夾中……根據我 Mac 上的查找器,以及 VS 代碼中的文件夾列!
我正在拔頭發。 切換了很多解釋器,本地 python 和 Conda,到 Python 而不是 3.9,回到 python 2.8。 什么都不重要。
直到我把: file = open('file.txt')
改成: file = open file = open('file.txt', 'a')
突然沒用了,但是我馬上在VScode的“文件夾欄”看到了一個彈出新的 file.txt 文件。 在與 pythonfile.py 所在的完全不同的文件夾中。 那么在那之后; 我將所有本地回購推送到他們的遙控器; 刪除了整個caboodle,並通過git克隆將它們一個一個安裝在新文件夾中。 我打開了一個新的工作區,添加了那些項目文件夾,從那以后它就像一個魅力。
究竟出了什么問題; 對不起,我不知道。 但對我來說,重新安裝 repo 和 VScode 工作區才是關鍵所在。
我最近遇到了同樣的錯誤,在 Visual Studio Code 上,我設法解決了它,而不是單擊Run Python
按鈕,我使用終端 cd 進入項目目錄並運行 python 腳本,沒問題!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.