13.2.14. 可选只读I/O类 MDAnalysis.lib.picklable_file_io

提供酸洗只读IO文件对象的接口。这些类用于进一步的酸洗 MDAnalysis.core.universe 在对象合成方法中。

class MDAnalysis.lib.picklable_file_io.FileIOPicklable(name, mode='r')[源代码]

可以进行浸泡的文件对象(只读)。

此类提供了一个类似文件的对象(由 open() ,即 io.FileIO ),与标准的Python文件对象不同,它可以进行酸洗。仅支持读取模式。

当文件被浸泡时,将保存文件中打开的文件句柄的文件名和位置。在取消酸洗时,按文件名打开文件,并将文件查找到保存的位置。这意味着要成功地取消选取,原始文件仍然必须可以使用其文件名进行访问。

备注

此类仅支持以二进制模式读取文件。如果需要以文本模式打开文件,请使用 pickle_open()

参数:
  • name (str) -- 一个文本或字节字符串,提供要打开的文件的名称(如果文件不在当前工作目录中,则还提供路径)。

  • mode (str) -- 只有读取(‘r’)模式有效。它的存在是为了与更广泛的API保持一致。

示例

>>> file = FileIOPicklable(PDB)
>>> file.readline()
>>> file_pickled = pickle.loads(pickle.dumps(file))
>>> print(file.tell(), file_pickled.tell())
    55 55

在 2.0.0 版本加入.

class MDAnalysis.lib.picklable_file_io.BufferIOPicklable(raw)[源代码]

只读FileIO对象的可拾取缓冲区对象。

此类提供了一个缓冲的 io.BufferedReader 可以腌制的。请注意,这仅在读取模式下有效。

参数:

raw (FileIO object) --

示例

file = FileIOPicklable('filename')
buffer_wrapped = BufferIOPicklable(file)

在 2.0.0 版本加入.

class MDAnalysis.lib.picklable_file_io.TextIOPicklable(raw)[源代码]

基于字符和行的可拾取类文件对象。

这个类提供了一个类似文件的 io.TextIOWrapper 可以进行酸洗的对象。请注意,这仅在读取模式下有效。

备注

酸洗后,重置当前位置。 universe.trajectory[i] 必须使用才能返回到其原始框架。

参数:

raw (FileIO object) --

示例

file = FileIOPicklable('filename')
text_wrapped = TextIOPicklable(file)

在 2.0.0 版本加入.

class MDAnalysis.lib.picklable_file_io.BZ2Picklable(name, mode='rb')[源代码]

可酸洗的bzip2(解)压缩的文件对象(只读)。

此类提供了一个类似文件的对象(由 bz2.open() ,即 bz2.BZ2File ),与标准的Python文件对象不同,它可以进行酸洗。仅支持读取模式。

当文件被浸泡时,将保存文件中打开的文件句柄的文件名和位置。在取消酸洗时,按文件名打开文件,并将文件查找到保存的位置。这意味着要成功地取消选取,原始文件仍然必须可以使用其文件名进行访问。

备注

此类仅支持以二进制模式读取文件。如果需要打开才能以文本模式打开压缩文件,请使用 bz2_pickle_open()

参数:
  • name (str) -- 一个文本或字节字符串,提供要打开的文件的名称(如果文件不在当前工作目录中,则还提供路径)。

  • mode (str) -- 只能是‘r’、‘rb’才能使泡菜起作用。

示例

>>> file = BZ2Picklable(XYZ_bz2)
>>> file.readline()
>>> file_pickled = pickle.loads(pickle.dumps(file))
>>> print(file.tell(), file_pickled.tell())
    5 5

在 2.0.0 版本加入.

打开一个bzip2压缩文件。

如果FileName是字符串、字节或Path Like对象,则提供要打开的文件的名称。否则,它应该是一个文件对象,用于读取或写入压缩数据。

模式可以是‘r’表示读取(默认),‘w’表示(覆盖)写入,‘x’表示独占创建,或‘a’表示追加。它们可以等同地被赋予‘rb’、‘wb’、‘xb’和‘ab’。

如果模式是‘w’、‘x’或‘a’,压缩级别可以是一个介于1和9之间的数字,指定压缩级别:1产生最小的压缩,9(默认)产生最大的压缩。

如果模式是‘r’,则输入文件可以是多个压缩流的串联。

class MDAnalysis.lib.picklable_file_io.GzipPicklable(name, mode='rb')[源代码]

可以进行酸洗的GZIP文件对象(只读)。

此类提供了一个类似文件的对象(由 gzip.open() ,即 gzip.GzipFile ),与标准的Python文件对象不同,它可以进行酸洗。仅支持读取模式。

当文件被浸泡时,将保存文件中打开的文件句柄的文件名和位置。在取消酸洗时,按文件名打开文件,并将文件查找到保存的位置。这意味着要成功地取消选取,原始文件仍然必须可以使用其文件名进行访问。

备注

此类仅支持以二进制模式读取文件。如果需要打开才能以文本模式打开压缩文件,请使用 gzip_pickle_open()

参数:
  • name (str) -- 一个文本或字节字符串,提供要打开的文件的名称(如果文件不在当前工作目录中,则还提供路径)。

  • mode (str) -- 只能是‘r’、‘rb’才能使泡菜起作用。

示例

>>> file = GzipPicklable(MMTF_gz)
>>> file.readline()
>>> file_pickled = pickle.loads(pickle.dumps(file))
>>> print(file.tell(), file_pickled.tell())
    1218 1218

在 2.0.0 版本加入.

GzipFile类的构造函数。

必须为fileobj和filename中的至少一个赋予非平凡的值。

新的类实例基于Fileobj,它可以是常规文件、io.BytesIO对象或任何其他模拟文件的对象。它缺省为None,在这种情况下,打开FileName以提供文件对象。

当FILEOBJ不是NONE时,FILENAME参数仅用于包括在GZIP文件头中,它可能包括未压缩文件的原始文件名。如果可识别,它将默认为fileobj的文件名;否则,它将默认为空字符串,在本例中,原始文件名不包括在头中。

根据文件是读还是写,模式参数可以是‘r’、‘rb’、‘a’、‘ab’、‘w’、‘wb’、‘x’或‘xb’中的任何一个。如果可识别,则默认为fileobj的模式;否则,默认为‘rb’。‘r’的模式等同于‘rb’中的一个,类似地,‘w’和‘wb’、‘a’和‘ab’以及‘x’和‘xb’中的一个也是如此。

CompressLevel参数是一个从0到9的整数,用于控制压缩级别;1表示最快,产生的压缩最小;9表示最慢,产生最大的压缩。0表示根本不压缩。默认值为9。

Mtime参数是一个可选的数字时间戳,在压缩时将写入流中的最后修改时间字段。如果省略或无,则使用当前时间。

MDAnalysis.lib.picklable_file_io.pickle_open(name, mode='rt')[源代码]

打开文件并返回一个实现了PICLE函数的流。

当给定“RB”读取模式时,此函数返回包装在BufferIOPicklable类中的FileIOPicklable对象,或者返回包装在具有“r”或“rt”读取模式的TextIOPicklable类中的FileIOPicklable对象。它可以用作上下文管理器,并取代内置的 open() 函数,该函数仅返回不可拾取的文件对象。为了序列化一个 MDAnalysis.core.Universe ,该功能可用于打开轨迹/拓扑文件。这种对象组合比类继承更灵活、更容易为新的读取器实现酸洗。

备注

只能与读取模式一起使用。

参数:
  • name (str) -- 一个文本或字节字符串,提供要打开的文件的名称(如果文件不在当前工作目录中,则还提供路径)。

  • mode ({'r', 'rt', 'rb'} (optional)) -- ‘R’:以文本模式打开阅读;‘RT’:以文本模式阅读(默认);‘RB’:以二进制模式阅读;

返回:

stream-like object --当模式为‘r’或‘rt’时,返回TextIOPicklable;当模式为‘rb’时,返回BufferIOPicklable

返回类型:

BufferIOPicklable or TextIOPicklable

抛出:

ValueError -- 如果 mode 不是允许的读取模式之一

示例

作为上下文管理器打开::

with pickle_open('filename') as f:
    line = f.readline()

打开方式函数::

f = pickle_open('filename')
line = f.readline()
f.close()

在 2.0.0 版本加入.

MDAnalysis.lib.picklable_file_io.bz2_pickle_open(name, mode='rb')[源代码]

使用PICKLE函数以二进制或文本模式打开bzip2压缩文件。

当给定“rb”或“r”读取模式时,此函数返回一个BZ2Picklable对象,或者返回一个包装在具有“rt”读取模式的TextIOPicklable类中的BZ2Picklable对象。它可以用作上下文管理器,并取代内置的 bz2.open() 函数,该函数仅返回不可拾取的文件对象。

备注

只能与读取模式一起使用。

参数:
  • name (str) -- 一个文本或字节字符串,提供要打开的文件的名称(如果文件不在当前工作目录中,则还提供路径)。

  • mode ({'r', 'rt', 'rb'} (optional)) -- ‘R’:打开以二进制模式读取;‘RT’:以文本模式读取;‘RB’:以二进制模式读取;(默认)

返回:

stream-like object --当模式为‘RT’时,返回TextIOPicklable;当模式为‘r’或‘Rb’时,返回BZ2Picklable

返回类型:

BZ2Picklable or TextIOPicklable

抛出:

ValueError -- 如果 mode 不是允许的读取模式之一

示例

作为上下文管理器打开::

with bz2_pickle_open('filename') as f:
    line = f.readline()

打开方式函数::

f = bz2_pickle_open('filename')
line = f.readline()
f.close()

在 2.0.0 版本加入.

MDAnalysis.lib.picklable_file_io.gzip_pickle_open(name, mode='rb')[源代码]

使用PICKLE函数以二进制或文本模式打开gzip压缩文件。

当给定“rb”或“r”读取模式时,此函数返回一个GzipPicklable对象,或者返回一个包装在具有“rt”读取模式的TextIOPicklable类中的GzipPicklable对象。它可以用作上下文管理器,并取代内置的 gzip.open() 函数,该函数仅返回不可拾取的文件对象。

备注

只能与读取模式一起使用。

参数:
  • name (str) -- 一个文本或字节字符串,提供要打开的文件的名称(如果文件不在当前工作目录中,则还提供路径)。

  • mode ({'r', 'rt', 'rb'} (optional)) -- ‘R’:打开以二进制模式读取;‘RT’:以文本模式读取;‘RB’:以二进制模式读取;(默认)

返回:

stream-like object --当模式为‘rt’时,返回TextIOPicklable;当模式为‘r’或‘rb’时,返回GzipPicklable

返回类型:

GzipPicklable or TextIOPicklable

抛出:

ValueError -- 如果 mode 不是允许的读取模式之一

示例

作为上下文管理器打开::

with gzip_pickle_open('filename') as f:
    line = f.readline()

打开方式函数::

f = gzip_pickle_open('filename')
line = f.readline()
f.close()

在 2.0.0 版本加入.

在 2.0.0 版本加入.