Python API接口
数据处理是通过执行python脚本处理OBS数据。Python脚本执行平台使用的是华为公有云ModelArts服务的训练作业执行引擎。
用户可以在脚本中直接使用MoXing中提供的一套文件对象API,用来读写本地文件或OBS文件系统。
在python脚本最前面,添加如下代码后,几乎所有本地文件的操作接口都可以支持s3路径。
import moxing as mox mox.file.shift('os', 'mox') # Read OBS File with open('s3://bucket_name/hello_world.txt') as f: print(f.read()) # Read Local File with open('/opt/hello_world.txt') as f: print(f.read())
数据处理支持的s3路径文件的操作接口,如表1所示。
Python |
mox.file |
接口含义 |
参数 |
返回值 |
---|---|---|---|---|
glob.glob |
mox.file.glob |
返回给定路径的文件列表 |
url:本地路径或s3 url |
绝对路径的列表 |
os.listdir |
mox.file.list_directory(..., recursive=False) |
列出给定路径下的所有文件 |
|
路径的列表 |
os.makedirs |
mox.file.make_dirs |
递归创建目录 |
url:本地路径或s3 url |
- |
os.mkdir |
mox.file.mk_dir |
创建目录 |
url:本地路径或s3 url |
父目录不存在时,返回异常“OSError” |
os.path.exists |
mox.file.exists |
路径中是否存在相应的文件 |
url:本地路径或s3 url |
- |
os.path.getsize |
mox.file.get_size |
获取文件大小 |
|
- |
os.path.isdir |
mox.file.is_directory |
判断给定目录或s3 URL是否是目录 |
url:本地路径或s3 url |
- |
os.remove |
mox.file.remove(..., recursive=False) |
删除文件或目录 |
|
- |
os.rename |
mox.file.rename |
移动一个文件或文件夹 |
url:本地路径或s3 url |
- |
os.scandir |
mox.file.scan_dir |
调用操作系统的目录迭代系统,来获取给定路径中文件的名称。仅在python 3中使用。与os.scandir的用法相同。 |
url:本地路径或s3 url |
DirEntry对象的生成器 |
os.stat |
mox.file.stat |
返回给定路径的文件统计信息。与os.stat的用法相同 |
src_url:源路径或s3 url |
包含有关路径信息的文件统计结构 |
os.walk |
mox.file.walk |
文件和目录遍历器。 |
url:本地路径或s3 url |
- |
open |
mox.file.File |
File Object文件对象,和python内置文件对象一样的用法。 |
|
- |
shutil.copyfile |
mox.file.copy |
拷贝文件,仅能拷贝一个文件。 |
|
- |
shutil.copytree |
mox.file.copy_parallel |
从源地址拷贝所有文件到目的地址,和shutil.cpoytree一样的用法,此方法只能拷贝目录。 |
|
- |
shutil.rmtree |
mox.file.remove(..., recursive=True) |
删除文件或目录 |
|
- |