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

Zac*_*aum 2 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);
}
Run Code Online (Sandbox Code Playgroud)

此功能获取基于ID的特定文件和基于ID的特定文件夹,并将标题为“模板副本”的副本放入该文件夹。

我一直在搜寻,似乎找不到。有办法做到完全相同的事情,但是要使用Python吗?或者,至少有一种方法可以让Python以某种方式调用该函数来运行该函数?我需要在Python中完成此操作,因为每当我开始工作的新项目时(例如从Google云端硬盘中的模板创建新文档以及与之无关的其他事情),我都会编写一个脚本,该脚本可以一次执行许多功能根本没有Google云端硬盘,因此无法在Google Apps脚本中完成。

Zac*_*aum 6

网络上有一些教程给出了部分答案。这是您需要做的分步指南。

  1. 打开命令提示符,然后键入(不带引号)“ pip install PyDrive”
  2. 按照第一步的指示进行操作-https: //developers.google.com/drive/v3/web/quickstart/python设置帐户
  3. 完成后,单击“下载JSON”,将下载一个文件。确保将其重命名为client_secrets.json,而不是快速入门所说的client_secret.json。
  4. 接下来,请确保将该文件放在与python脚本相同的目录中。如果从控制台运行脚本,则该目录可能是您的用户名目录。
  5. 我假设您已经知道放置此文件的文件夹ID和要复制的文件ID。如果您不知道它,这里有教程介绍如何使用python找到它,或者您可以在“文档”中打开它,并且它将在文件的URL中。基本上输入文件夹的ID和文件的ID,然后在运行此脚本时,它将复制所选文件并将其放置在所选文件夹中。
  6. 要注意的一件事是,在运行时,浏览器窗口将打开并询问权限,只需单击接受,脚本便会完成。
  7. 为了使其正常工作,您可能必须启用Google驱动器API(位于API部分)。

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()
Run Code Online (Sandbox Code Playgroud)