如何通过Python在Google云端硬盘中制作文件副本?

时间:2015-06-08 18:34:00

标签: python google-drive-api google-oauth

我在Google Apps脚本中编写了一个简短的功能,可以复制存储在Google云端硬盘中的特定文件。它的目的是这个文件是一个模板,每次我想创建一个新的工作文件,我都会复制这个模板,只需更改文档的标题。我编写的代码来制作文件的副本并将其存储在我想要的特定文件夹中非常简单:

function copyFile() {
  var file = DriveApp.getFileById("############################################");
  var folder = DriveApp.getFolderById("############################");
  var filename = "Copy of Template";
  file.makeCopy(filename, folder);
}

此功能根据ID和基于ID的特定文件夹获取特定文件,并放置副本权限"模板副本"进入该文件夹。

我一直在寻找,我似乎无法找到这个。有没有办法完成同样的事情,但使用Python代替?或者,至少有一种方法让Python以某种方式调用该函数来运行此函数?我需要在Python中完成这项工作,因为我正在编写一个脚本,每当我开始一个新项目工作时,它会立即执行许多功能,例如从Google Drive中的模板创建新文档以及其他与之无关的内容Google云端硬盘根本无法在Google Apps脚本中完成。

2 个答案:

答案 0 :(得分:4)

网上有一些教程可以给出部分答案。以下是您需要做的分步指南。

  1. 打开命令提示符并键入(不带引号)“pip install PyDrive”
  2. 按照第1步 - https://developers.google.com/drive/v3/web/quickstart/python设置帐户
  3. 的说明进行操作
  4. 完成后,单击“下载JSON”,将下载文件。确保将其重命名为client_secrets.json,而不是像Quick Start所说的那样将其重命名为client_secret.json。
  5. 接下来,确保将该文件放在与python脚本相同的目录中。如果从控制台运行脚本,则该目录可能是您的用户名目录。
  6. 我假设您已经知道要放置此文件的文件夹ID以及要复制的文件ID。如果你不知道它,有关于如何使用python找到它的教程,或者你可以在Docs中打开它,它将在文件的URL中。基本上输入文件夹的ID和文件的ID,当您运行此脚本时,它将复制所选文件并将其放在所选文件夹中。
  7. 需要注意的一点是,在运行时,您的浏览器窗口会打开并请求权限,只需单击“接受”,然后脚本就会完成。
  8. 为了实现此目的,您可能需要启用API驱动器API,该API位于API的部分。
  9. Python脚本:

    ## Create a new Document in Google Drive
    from pydrive.auth import GoogleAuth
    from pydrive.drive import GoogleDrive
    gauth = GoogleAuth()
    gauth.LocalWebserverAuth()
    drive = GoogleDrive(gauth)
    folder = "########"
    title = "Copy of my other file"
    file = "############"
    drive.auth.service.files().copy(fileId=file,
                               body={"parents": [{"kind": "drive#fileLink",
                                     "id": folder}], 'title': title}).execute()
    

答案 1 :(得分:1)

来自https://developers.google.com/drive/v2/reference/files/copy

t.index :question_id
t.index :sub_topic_id