没有线程锁定的文件 I/O 包装器。
用法
tf.io.gfile.GFile(
name, mode='r'
)
属性
-
mode
返回打开文件的模式。 -
name
返回文件名。
tf.io.gfile
模块的主要作用是:
- 提供接近 Python 的文件 I/O 对象的 API,以及
- 提供基于 TensorFlow 的 C++ FileSystem API 的实现。
C++ FileSystem API 支持多种文件系统实现,包括本地文件、Google Cloud Storage(使用 gs://
前缀和 HDFS(使用 hdfs://
前缀)。TensorFlow 将这些导出为 tf.io.gfile
,以便您可以使用这些用于保存和加载检查点、写入 TensorBoard 日志和访问训练数据(以及其他用途)的实现。但是,如果您的所有文件都是本地文件,则可以使用常规 Python 文件 API 没有任何问题。
注意:尽管类似于 Python 的 I/O 实现,但语义上的差异使tf.io.gfile
更有效地支持文件系统。例如,在第一次写入调用以最小化网络文件系统中的 RPC 调用之前,不会打开写入模式文件。
一旦获得GFile
对象,就可以像使用任何 Python 的文件对象一样以大多数方式使用它:
with open("/tmp/x", "w") as f:
f.write("asdf")
4
with tf.io.gfile.GFile("/tmp/x") as f:
f.read()
'asdf'
不同之处在于,如果支持,您可以指定 URI 方案以使用其他文件系统(例如,gs://
用于 GCS,s3://
用于 S3 等)。以file://
为例,我们有:
with tf.io.gfile.GFile("file:///tmp/x", "w") as f:
f.write("qwert")
f.write("asdf")
tf.io.gfile.GFile("file:///tmp/x").read()
'qwertasdf'
您还可以直接读取文件的所有行:
with tf.io.gfile.GFile("file:///tmp/x", "w") as f:
f.write("asdf\n")
f.write("qwer\n")
tf.io.gfile.GFile("/tmp/x").readlines()
['asdf\n', 'qwer\n']
您可以遍历这些行:
with tf.io.gfile.GFile("file:///tmp/x", "w") as f:
f.write("asdf\n")
f.write("qwer\n")
for line in tf.io.gfile.GFile("/tmp/x"):
print(line[:-1]) # removes the end of line character
asdf
qwer
如果底层文件系统支持随机访问读取是可能的:
with open("/tmp/x", "w") as f:
f.write("asdfqwer")
f = tf.io.gfile.GFile("/tmp/x")
f.read(3)
'asd'
f.seek(4)
f.tell()
4
f.read(3)
'qwe'
f.tell()
7
f.close()
相关用法
- Python tf.io.gfile.GFile.close用法及代码示例
- Python tf.io.gfile.join用法及代码示例
- Python tf.io.gfile.exists用法及代码示例
- Python tf.io.gfile.copy用法及代码示例
- Python tf.io.gfile.glob用法及代码示例
- Python tf.io.parse_example用法及代码示例
- Python tf.io.serialize_tensor用法及代码示例
- Python tf.io.SparseFeature用法及代码示例
- Python tf.io.decode_json_example用法及代码示例
- Python tf.io.TFRecordWriter用法及代码示例
- Python tf.io.decode_gif用法及代码示例
- Python tf.io.decode_raw用法及代码示例
- Python tf.io.RaggedFeature用法及代码示例
- Python tf.io.read_file用法及代码示例
- Python tf.io.deserialize_many_sparse用法及代码示例
- Python tf.io.write_graph用法及代码示例
- Python tf.io.TFRecordOptions.get_compression_type_string用法及代码示例
- Python tf.io.decode_proto用法及代码示例
- Python tf.image.random_brightness用法及代码示例
- Python tf.image.pad_to_bounding_box用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.io.gfile.GFile。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。