Python - gphoto2 如何弄清楚函数的作用?

Python - gphoto2 How to figure out what a function does?

我在玩 gphoto2,我发现 camera 对象有一个 public 函数 file_get_info()。我想知道:

  1. 这个函数的作用
  2. 怎么称呼它

但是到目前为止我还没有找到任何关于它的信息。


我就是这样做的:

import gphoto2 as gp

portInfoList = gp.PortInfoList()
portInfoList.load()
abilitiesList = gp.CameraAbilitiesList()
abilitiesList.load()
cams = abilitiesList.detect(portInfoList)

for name, addr in cams:
    print("%s at port %s"%(name, addr))
    idx = portInfoList.lookup_path(addr)
    camera = gp.Camera()
    camera.set_port_info(portInfoList[idx])
    camera.init()
camera.file_get_info()

这是我得到的:

TypeError: Camera_file_get_info expected at least 2 arguments, got 0

更令人沮丧的是,无论我google如何努力,我都找不到有关Camera_file_get_info函数的任何信息。

我是不是处理错了?

Camera 对象的 file_get_info 方法是 libgphoto2 函数 gp_camera_file_get_info 的更 Pythonic 版本。这将是一个更好的网络搜索术语。

有多种方法可以获得您要查找的信息。与其他 Python 模块一样,您可以使用 pydoc:

pydoc3 gphoto2.Camera.file_get_info

Help on method_descriptor in gphoto2.Camera:

gphoto2.Camera.file_get_info = file_get_info(...)
    file_get_info(char const * folder, char const * file, Context context)

    Retrieves information about a file.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `folder` :  
        a folder  
    * `file` :  
        the name of the file  
    * `info` :  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code

    See also gphoto2.gp_camera_file_get_info

这取自"C"文档,所以参数列表有点混乱——info是C版本的参数,但在Python中不是。您需要的两个参数是 folderfile - 这些参数告诉函数您需要哪个文件的信息。

您可能更喜欢直接使用 C 文档:http://www.gphoto.org/doc/api/gphoto2-camera_8h.html#adda54321b1947b711d345936041f80c7 这包括对 info 结构的 link。

最后,python-gphoto2 中包含的 list-files.py 示例程序显示了 file_get_info.

的用法