文档首页> AI开发平台ModelArts> MoXing开发指南> mox.file与本地接口的对应关系和切换
更新时间:2024-03-27 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

一键切换

  • 一键切换的API实现方式为对基础API进行函数替换,在多进程或者多线程环境中一键切换的API可能会带来一些未知问题,因此建议直接调用moxing API即可实现功能的代码尽量不要用这个一键切换功能。
  • 一键切换的API全局只能执行一次,不要在训练脚本中多次调用,避免导致训练失败。

您可以通过一行代码,将表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())
分享:

    相关文档

    相关产品