[英]Get Current Working Directory With Python C Extension
我正在構建一個可以加載圖像的 Python C 擴展。 要加載某個圖像,用戶必須寫入該圖像的文件路徑。
問題是用戶必須輸入整個文件路徑,即使圖像與他們的模塊位於同一目錄中。
Python 本身有一些有用的工具,比如os.path
和pathlib
可以幫助你找到當前模塊的路徑。 我搜索了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.