簡體   English   中英

使用 Python C 擴展獲取當前工作目錄

[英]Get Current Working Directory With Python C Extension

我正在構建一個可以加載圖像的 Python C 擴展。 要加載某個圖像,用戶必須寫入該圖像的文件路徑。

問題是用戶必須輸入整個文件路徑,即使圖像與他們的模塊位於同一目錄中。

Python 本身有一些有用的工具,比如os.pathpathlib可以幫助你找到當前模塊的路徑。 我搜索了Python C API ,但似乎找不到任何與在 C 中查找當前工作目錄相關的工具。

我可以做什么 - 在 C 中 - 獲取用戶模塊目錄的路徑? 有沒有Python.h函數? 我采取了錯誤的方法嗎?

python c api 可以與您可以在 Python 中執行的許多操作進行交互。

你會如何在 Python 中做到這一點? 你會import os並調用os.getcwd() ,對嗎?

原來你可以在 c api 中做同樣的事情。

PyObject *os_module = PyImport_ImportModule("os");
if (os_module == NULL) { //error handling
    return NULL;
}

PyObject* cwd = PyObject_CallMethod(os_module, "getcwd", NULL);
if (cwd == NULL) { //error handling
    return NULL;
}

char* result = PyUnicode_AsUTF8(cwd);

然后,當您完成模塊或任何一般的 pyobject 時,請記住在其上調用Py_DECREF()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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