[英]How do I correctly use the os.path to locate a file stored in a specific folder?
我是 python 的新手,我沒有經常使用 os.path,但是隨着我的項目的增長,我開始嘗試將多個文件夾集成在一起,我意識到我開始使用 os.path 方法可能是最好的。
我目前正在嘗試訪問文件夾中的 json 文件data.json
(即在其他幾個文件夾中)。 我查看了它在網上完成的方式,但我想我自己弄糊塗了。
import os
import json
x = os.path.join('c:', 'data.json')
data = json.loads(open(x).read())
print(data)
錯誤信息: FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Obada\\OneDrive\\Documents\\VS Code Projects\\Basic Chatbot\\data'
我建議使用os.listdir()方法查看當前活動文件夾中的現有文件(您可以使用os.getcwd() )來查看。
import os
import json
files = os.listdir()
x = os.path.join('c:', 'data.json')
for i in files:
if x in files:
data = json.loads(open(x).read())
print(data)
else:
print("File doesn't exist!")
有更好的方法可以做到這一點,但我試圖讓它對初學者友好,因為你是 python 新手。
path.join()
函數適用於您要在不同操作系統中運行的程序,在此示例中您不必使用 join 函數。
join 函數只是用/
或\
連接 2 個字符串,具體取決於操作系統
在這個例子中它的窗口,所以它使用\
如果它在 c 分區中,您可以只使用完整(原始)地址。
但是如果地址是相對的,例如這個例子:
.\example.json
它取決於您所在的當前文件或文件夾,在這種情況下是 python 腳本,您應該使用 join 函數
如果您在 Windows 上,您可以使用類似這樣的方法訪問 C:\ 中的文件。 注意第二個斜線是因為我們需要告訴python它是一個\
import os
fullfilename = os.path.join('C:\\', 'data.json')
data = json.loads(open(fullfilename).read())
print(data)
另一個有用的選項是 getcwd,它將為您提供當前運行 python 的目錄。
currdir = os.getcwd()
FILEPATH = os.path.join(currdir,"data.json")
這將確保一切都相對於您運行代碼的目錄正常工作......無論您將代碼移動到何處
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.