AI开发平台MODELARTS-MoXing常用操作的样例代码:读写操作

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

读写操作

  • 读取一个OBS文件。
    例如读取“obs://bucket_name/obs_file.txt”文件内容,返回string(字符串类型)。
    1
    2
    import moxing as mox
    file_str = mox.file.read('obs://bucket_name/obs_file.txt')
    
    也可以使用打开文件对象并读取的方式来实现,两者是等价的。
    1
    2
    3
    import moxing as mox
    with mox.file.File('obs://bucket_name/obs_file.txt', 'r') as f:
      file_str = f.read()
    
  • 从文件中读取一行,返回string,以换行符结尾。同样可以打开OBS的文件对象。
    1
    2
    3
    import moxing as mox
    with mox.file.File('obs://bucket_name/obs_file.txt', 'r') as f:
      file_line = f.readline()
    
  • 从文件中读取所有行,返回一个list,每个元素是一行,以换行符结尾。
    1
    2
    3
    import moxing as mox
    with mox.file.File('obs://bucket_name/obs_file.txt', 'r') as f:
      file_line_list = f.readlines()
    
  • 以二进制模式读取一个OBS文件。
    例如读取“obs://bucket_name/obs_file.bin”文件内容,返回bytes(字节类型)。
    1
    2
    import moxing as mox
    file_bytes = mox.file.read('obs://bucket_name/obs_file.bin', binary=True)
    

    也可以使用打开文件对象并读取的方式来实现,两者是等价的。

    1
    2
    3
    import moxing as mox
    with mox.file.File('obs://bucket_name/obs_file.bin', 'rb') as f:
      file_bytes = f.read()
    

    以二进制模式打开的文件也支持读取一行或者读取所有行,用法不变。

  • 将字符串写入一个文件。
    例如将字符串“Hello World!”写入OBS文件“obs://bucket_name/obs_file.txt”中。
    1
    2
    import moxing as mox
    mox.file.write('obs://bucket_name/obs_file.txt', 'Hello World!')
    

    也可以使用打开文件对象并写入的方式来实现,两者是等价的。

    1
    2
    3
    import moxing as mox
    with mox.file.File('obs://bucket_name/obs_file.txt', 'w') as f:
      f.write('Hello World!')
    

    用写入模式打开文件或者调用mox.file.write时,如果被写入文件不存在,则会创建,如果已经存在,则会覆盖。

  • 追加一个OBS文件。

    例如将字符串“Hello World!”追加到“obs://bucket_name/obs_file.txt”文件中。

    1
    2
    import moxing as mox
    mox.file.append('obs://bucket_name/obs_file.txt', 'Hello World!')
    

    也可以使用打开文件对象并追加的方式来实现,两者是等价的。

    1
    2
    3
    import moxing as mox
    with mox.file.File('obs://bucket_name/obs_file.txt', 'a') as f:
      f.write('Hello World!')
    

    用追加模式打开文件或者调用mox.file.append时,如果被写入文件不存在,则会创建,如果已经存在,则直接追加。

    当被追加的源文件比较大时,例如“obs://bucket_name/obs_file.txt”文件大小超过5MB时,追加一个OBS文件的性能比较低。

    如果以写入模式或追加模式打开文件,当调用write方法时,待写入内容只是暂时的被存在的缓冲区,直到关闭文件对象(退出with语句时会自动关闭文件对象)或者主动调用文件对象的close()方法或flush()方法时,文件内容才会被写入。

support.huaweicloud.com/usermanual-standard-modelarts/modelarts_11_0005.html