【问题标题】:How to rename a google spreadsheet via Google Drive API in python?如何通过 python 中的 Google Drive API 重命名谷歌电子表格?
【发布时间】:2020-10-14 06:09:42
【问题描述】:

我在 Python 中使用Google Drive API 来归档我的文件。 但是,我在重命名原始文件的副本时遇到问题。

我的新文件的标题默认为

'副本+原始文件名'

但是我希望我的新文件名是

'原始文件名 + 当前日期'

我找不到如何更改复制代码中的标题配置或重命名我复制的新文件。

我使用的复制码是:

service.files().copy(fileId=original_file_id).execute()

有人知道如何在 Python 中重命名文件标题吗?或者也欢迎任何替代方法。

【问题讨论】:

    标签: python google-drive-api google-sheets-api google-api-python-client gspread


    【解决方案1】:

    我不确定您希望日期和复制的文件名的格式如何,但您可以执行以下操作:

    • 通过Files: get检索原始文件的名称。
    • 通过Files: copy复制文件,并检索复制的文件ID。
    • 使用原始文件的名称和您拥有的任何日期构建所需的名称。
    • 通过Files: update 使用新名称更新副本。

    代码sn-p:

    from datetime import date
    
    def copyFile(service, fileId):
        fileName = service.files().get(fileId=fileId).execute()["name"]
        copyId = service.files().copy(fileId=fileId).execute()["id"]
        currentDate = date.today()
        copyName = "{} | {}".format(fileName, currentDate)
        body = { "name": copyName }
        service.files().update(fileId=copyId, body=body).execute()
    

    【讨论】:

      【解决方案2】:

      请注意,我不是 python 开发人员,此代码是我的疯狂猜测,您需要修复它。

      Files.copy 有一个名为 name 的参数,您可以将其与请求一起发送。我不确定如何使用 python libray 发送可选参数。我看到的唯一问题是您需要先执行一个 file.get 以便您拥有可用于传递给此方法的文件的当前名称。

      request = service.files().copy(fileId=original_file_id);
      request.Name =  'original file name + current date';
      response = request.execute();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-11
        • 1970-01-01
        • 1970-01-01
        • 2012-12-16
        • 2017-05-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多