沒有線程鎖定的文件 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。