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()
。- 参数:
示例
>>> 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()
。示例
>>> 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()
。示例
>>> 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
- 返回类型:
- 抛出:
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
- 返回类型:
- 抛出:
ValueError -- 如果 mode 不是允许的读取模式之一
示例
作为上下文管理器打开::
with bz2_pickle_open('filename') as f: line = f.readline()
打开方式函数::
f = bz2_pickle_open('filename') line = f.readline() f.close()
参见
io.open()
,bz2.open()
,MDAnalysis.lib.util.anyopen()
,MDAnalysis.lib.picklable_file_io.pickle_open()
,MDAnalysis.lib.picklable_file_io.gzip_pickle_open()
在 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
- 返回类型:
- 抛出:
ValueError -- 如果 mode 不是允许的读取模式之一
示例
作为上下文管理器打开::
with gzip_pickle_open('filename') as f: line = f.readline()
打开方式函数::
f = gzip_pickle_open('filename') line = f.readline() f.close()
参见
io.open()
,gzip.open()
,MDAnalysis.lib.util.anyopen()
,MDAnalysis.lib.picklable_file_io.pickle_open()
,MDAnalysis.lib.picklable_file_io.bz2_pickle_open()
在 2.0.0 版本加入.
在 2.0.0 版本加入.