register_identifier#

astropy.io.registry.register_identifier(data_format, data_class, identifier, force=False)#

将标识符函数与特定数据类型相关联。

参数:
data_format : strPython :字符串

数据格式标识符。这是在读/写时用于指定数据类型的字符串。

data_class

可以写入的对象的类。

identifier : functionPYTHON:函数

检查指定给的参数的函数 readwrite 确定输入是否可以解释为类型的表 data_format . 此函数应采用以下参数:

  • origin :字符串 "read""write" 标识要打开文件以进行读写。

  • path :文件的路径。

  • fileobj :用于读取文件内容的打开文件对象,或 None 如果文件无法打开。

  • *args :的位置参数 readwrite 功能。

  • **kwargs :的关键字参数 readwrite 功能。

一个或两个 pathfileobj 可能是 None . 如果两者都是 None ,标识符将需要从 args[0] .

如果可以将输入标识为格式,则函数应返回True data_format ,否则为假。

force : bool ,可选可选的布尔

如果已经存在,是否重写任何现有函数。默认为 False .

实例

要设置基于扩展名的标识符,对于将文件名作为第一个参数的格式,您可以这样做

from astropy.io.registry import register_identifier
from astropy.table import Table
def my_identifier(*args, **kwargs):
    return isinstance(args[0], str) and args[0].endswith('.tbl')
register_identifier('ipac', Table, my_identifier)
unregister_identifier('ipac', Table)