如何在Google Cloud Storage上写入XLSX文件

时间:2019-02-15 19:36:23

标签: google-cloud-platform google-cloud-storage

如何使用python写入Google Cloud Storage上的xlsx文件?我现在正在执行此操作,但不确定如何格式化我的write()以添加到一行中。我想在云存储上的names.xlsx文件中添加一行['Sally','Ja',15]。

import cloudstorage

file = cloudstorage.open('/master/names.xlsx')
file.write(##what goes in here?##)
filehandle.close()

2 个答案:

答案 0 :(得分:0)

Google云端存储中的对象是不可变的,因此您不能将新行追加到现有对象。您将需要重写整个对象。

您可以使用compose API来获得有限的“附加”功能,但这只会将字节附加到对象的末尾,而将字节附加到对象的末尾,而且我认为这样做不容易XLSX数据已实现。

答案 1 :(得分:0)

正如Travis所提到的,您不能追加而是重新重写整个对象,例如下面的示例(假设text.csv是您的现有文件),您可以在dataframe中读取该文件,添加一些数据并使用gsutil命令将其复制到GCP铲斗。这将覆盖text.csv的先前版本。

  import pandas as pd
  data = [['Alex','Feb',10],['Bob','jan',12]]
  df = pd.DataFrame(data,columns=['Name','Month','Age'])
  print df

输出

       Name Month  Age
    0  Alex   Feb   10
    1   Bob   jan   12

添加行

  row = ['Sally','Oct',15]
  df.loc[len(df)] = row
  print df

输出

    Name Month  Age
0   Alex   Feb   10
1    Bob   jan   12
2  Sally   Oct   15

使用gsutil写入/复制到GCP存储桶

 df.to_csv('text.csv', index = False)
!gsutil cp 'text.csv' 'gs://BucketName/folderName/'