2

我想使用 PyGSheets 在我的 Google Drive 文件夹中创建一个电子表格。我还希望能够设置使用代码创建工作表的目录/文件夹。具体来说,我想输入一个类似于 URL 的字符串,甚至只是文件夹的名称。
我已经查看了 PyGSheets 文档和“电子表格”模型。我没有找到任何接受文件夹名称或目录地址的类。也没有用于将工作表从一个文件夹移动到另一个文件夹的类。是否可以使用 PyGSheets 进行任一操作?


截至 5 月 5 日,我已针对此问题使用了解决方法。要获取我的云端硬盘中文件夹的 ID,我右键单击目标文件夹并从出现的菜单中选择“获取可共享链接”。我复制链接并将其粘贴到任何文本编辑器上。该链接如下所示:https ://drive.google.com/open?id=9JHS74hgls049J50 。我在“id =”关键字之后复制随机字符串。这就是我在使用 PyGSheets 创建文件夹时提供的值:

shtTargetedCreate = con.create("Test Folder",folder="1GwA4W8iv-26BvG48nKnEigYqDL8SpUGK")

有没有更有效的方法来做到这一点?

4

1 回答 1

5

好吧,看起来您已经知道如何通过文件 ID 在文件夹中创建新的电子表格,但还没有找到如何从 pygsheets 中获取文件夹名称/ID 或如何移动工作表。(您说您创建了一个“使用 PyGSheets 的文件夹,但这只是创建了一个电子表格,对吗?)

这些都可以通过使用 DriveAPIWrapper 函数来完成 - https://pygsheets.readthedocs.io/en/stable/drive_api.html

文件夹名称/ID:

pygsheets.drive.list(),在您的情况下con.drive.list(),将为驱动器中的所有文件和文件夹提供元数据字典列表。我制作了一个简单的函数来将文件夹名称(键)和 ID(值)提取到字典中,以便更简单地查找并与 create 方法一起使用:

def folder_id_dict(client):
    folders = {}
    meta_list = client.drive.list()
    for file_meta in meta_list:
        if file_meta['mimeType'] == 'application/vnd.google-apps.folder':
            folders[file_meta['name']] = file_meta['id']
    return folders

#your use:
names = folder_id_dict(con)

在文件夹之间移动文件:

https://pygsheets.readthedocs.io/en/stable/drive_api.html#pygsheets.drive.DriveAPIWrapper.move_file

con.drive.move_file(file_id, old_folder, new_folder, **kwargs)
于 2019-06-09T22:31:16.340 回答