簡體   English   中英

如何正確使用 os.path 來定位存儲在特定文件夾中的文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM