文档首页> AI开发平台ModelArts> MoXing开发指南> mox.file与本地接口的对应关系和切换
更新时间:2023-04-11 GMT+08:00

mox.file与本地接口的对应关系和切换

API对应关系

  • Python:指本地使用Python对本地文件的操作接口。支持一键切换为对应的MoXing文件操作接口(mox.file)。
  • mox.file:指MoXing框架中用于文件操作的接口,其与python接口一一对应关系。
  • tf.gfile:指MoXing文件操作接口一一对应的TensorFlow相同功能的接口,在MoXing中,无法自动将文件操作接口自动切换为TensorFlow的接口,下表呈现内容仅表示功能类似,帮助您更快速地了解MoXing文件操作接口的功能。
表1 API对应关系

Python(本地文件操作接口)

mox.file(MoXing文件操作接口)

tf.gfile(TensorFlow文件操作接口)

glob.glob

mox.file.glob

tf.gfile.Glob

os.listdir

mox.file.list_directory(..., recursive=False)

tf.gfile.ListDirectory

os.makedirs

mox.file.make_dirs

tf.gfile.MakeDirs

os.mkdir

mox.file.mk_dir

tf.gfile.MkDir

os.path.exists

mox.file.exists

tf.gfile.Exists

os.path.getsize

mox.file.get_size

-

os.path.isdir

mox.file.is_directory

tf.gfile.IsDirectory

os.remove

mox.file.remove(..., recursive=False)

tf.gfile.Remove

os.rename

mox.file.rename

tf.gfile.Rename

os.scandir

mox.file.scan_dir

-

os.stat

mox.file.stat

tf.gfile.Stat

os.walk

mox.file.walk

tf.gfile.Walk

open

mox.file.File

tf.gfile.FastGFile(tf.gfile.Gfile)

shutil.copyfile

mox.file.copy

tf.gfile.Copy

shutil.copytree

mox.file.copy_parallel

-

shutil.rmtree

mox.file.remove(..., recursive=True)

tf.gfile.DeleteRecursively

一键切换

您可以通过一行代码,将表1中OS的API映射到mox.file下。将以下代码写到启动脚本的最前面,在之后的Python运行中,当调用表格第一列的OS相关的API时,会自动映射到第二列mox.file的API。

1
2
import moxing as mox
mox.file.shift('os', 'mox')

在做完shift之后,可以直接通过os.listdir或者open方法操作OBS目录或文件,样例代码如下所示。

1
2
3
4
5
6
7
8
import os 
import moxing as mox  

mox.file.shift('os', 'mox')  

print(os.listdir('obs://bucket_name')) 
with open('obs://bucket_name/hello_world.txt') as f:
   print(f.read())