AI开发平台MODELARTS-MoXing常用操作的样例代码:移动和复制操作

时间:2024-08-16 20:39:03

移动和复制操作

  • 移动一个OBS文件或文件夹。移动操作本身是用“复制+删除”来实现的。
    • 一个OBS文件移动到另一个OBS文件,例如将“obs://bucket_name/obs_file.txt”移动到“obs://bucket_name/obs_file_2.txt”
      1
      2
      import moxing as mox
      mox.file.rename('obs://bucket_name/obs_file.txt', 'obs://bucket_name/obs_file_2.txt')
      

      移动和复制操作不可以跨桶,必须在同一个桶内操作。

    • 从OBS移动到本地,例如将“obs://bucket_name/obs_file.txt”移动到“/tmp/obs_file.txt”
      1
      2
      import moxing as mox
      mox.file.rename('obs://bucket_name/obs_file.txt', '/tmp/obs_file.txt')
      
    • 从本地移动到OBS,例如将“/tmp/obs_file.txt”移动到“obs://bucket_name/obs_file.txt”
      1
      2
      import moxing as mox
      mox.file.rename('/tmp/obs_file.txt', 'obs://bucket_name/obs_file.txt')
      
    • 从本地移动到本地,例如将“/tmp/obs_file.txt”移动到“/tmp/obs_file_2.txt”,该操作相当于os.rename
      1
      2
      import moxing as mox
      mox.file.rename('/tmp/obs_file.txt', '/tmp/obs_file_2.txt')
      

    所有的移动操作均可以操作文件夹,如果操作的是文件夹,那么则会递归移动文件夹下所有的内容。

  • 复制一个文件。mox.file.copy仅支持对文件操作,如果要对文件夹进行操作,请使用mox.file.copy_parallel
    • 从OBS复制到OBS,例如将“obs://bucket_name/obs_file.txt”复制到“obs://bucket_name/obs_file_2.txt”
      1
      2
      import moxing as mox
      mox.file.copy('obs://bucket_name/obs_file.txt', 'obs://bucket_name/obs_file_2.txt')
      
    • 将OBS文件复制到本地,也就是下载一个OBS文件。例如下载“obs://bucket_name/obs_file.txt”到本地“/tmp/obs_file.txt”
      1
      2
      import moxing as mox
      mox.file.copy('obs://bucket_name/obs_file.txt', '/tmp/obs_file.txt')
      
    • 将本地文件复制到OBS,也就是上传一个OBS文件,例如上传“/tmp/obs_file.txt”“obs://bucket_name/obs_file.txt”
      1
      2
      import moxing as mox
      mox.file.copy('/tmp/obs_file.txt', 'obs://bucket_name/obs_file.txt')
      
    • 将本地文件复制到本地,操作等价于shutil.copyfile,例如将“/tmp/obs_file.txt”复制到“/tmp/obs_file_2.txt”
      1
      2
      import moxing as mox
      mox.file.copy('/tmp/obs_file.txt', '/tmp/obs_file_2.txt')
      
  • 复制一个文件夹。mox.file.copy_parallel仅支持对文件夹操作,如果要对文件进行操作,请使用mox.file.copy
    • 从OBS复制到OBS,例如将obs://bucket_name/sub_dir_0复制到obs://bucket_name/sub_dir_1
      1
      2
      import moxing as mox
      mox.file.copy_parallel('obs://bucket_name/sub_dir_0', 'obs://bucket_name/sub_dir_1')
      
    • 将OBS文件夹复制到本地,也就是下载一个OBS文件夹。例如下载“obs://bucket_name/sub_dir_0”到本地“/tmp/sub_dir_0”
      1
      2
      import moxing as mox
      mox.file.copy_parallel('obs://bucket_name/sub_dir_0', '/tmp/sub_dir_0')
      
    • 将本地文件夹复制到OBS,也就是上传一个OBS文件夹,例如上传“/tmp/sub_dir_0”“obs://bucket_name/sub_dir_0”
      1
      2
      import moxing as mox
      mox.file.copy_parallel('/tmp/sub_dir_0', 'obs://bucket_name/sub_dir_0')
      
    • 将本地文件夹复制到本地,操作等价于shutil.copytree,例如将“/tmp/sub_dir_0”复制到“/tmp/sub_dir_1”
      1
      2
      import moxing as mox
      mox.file.copy_parallel('/tmp/sub_dir_0', '/tmp/sub_dir_1')
      
support.huaweicloud.com/usermanual-standard-modelarts/modelarts_11_0005.html