TensorFlow中的tf.gfile模块提供了文件操作的API,包括文件的读取、写入、删除、复制等等。文档中对于该模块的介绍为:Imports for Python API。关于该模块详细一点的介绍可看这里。
在文档中,该模块有两个类,FastGFile和GFile,但是查看源码可发现,二者其实是一样的。
tf.gfile.Copy函数
tf.gfile.Copy(oldpath, newpath, overwrite=False)
将文件从oldpath拷贝到newpath,path是要包含文件名的。如果overwrite为False,当newpath已存在时会产生错误:AlreadyExistsError: file already exists。
tf.gfile.DeleteRecursively函数
tf.gfile.DeleteRecursively(dirname)
删除dirname目录下的所有内容。
tf.gfile.Exists函数
tf.gfile.Exists(filename)
判断路径filename是否存在,filename可以是文件路径也可以是文件夹路径。
tf.gfile.IsDirectory函数
tf.gfile.IsDirectory(dirname)
判断路径dirname是否为一目录。
tf.gfile.ListDirectory函数
tf.gfile.ListDirectory(dirname)
返回目录dirname下的所有内容,包含子目录,但不包含‘.’和‘..’。返回形式为:
[filename1, filename2, ... filenameN]
tf.gfile.MkDir
tf.gfile.MkDir(dirname)
创建目录dirname。注意上层目录必须存在,如:
tf.gfile.MkDir('./a/b/c')
则./a/b必须存在。
tf.gfile.MakeDirs函数
tf.gfile.MakeDirs(dirname)
创建目录dirname。与MkDir不同,上层目录可以不存在。
tf.gfile.Remove函数
tf.gfile.Remove(filename)
删除文件filename。
tf.gfile.Rename函数
tf.gfile.Rename(oldname, newname, overwrite=False)
重命名/移动文件/目录。
tf.gfile.Walk函数
tf.gfile.Walk( top, in_order=True)
返回一生成器,可用于递归目录树,top为顶层目录。若in_order为True,则按顺序递归。使用方式:
for i in tf.gfile.Walk('./datasets/'):
print(i)
输出格式为(the pathname of a directory, followed by lists of all its subdirectories and leaf files):
(dirname, [subdirname, subdirname, ...], [filename, filename, ...])
也可以使用next()函数来迭代。
tf.gfile.FastGFile类
提供了文件的读写操作。注意对于非UTF-8的文件,例化对象时,使用'rb'模式。