如何使用 PyGSheets v2 在特定 folder/directory 中创建新的 sheet?

How do you create a new sheet in a specific folder/directory using PyGSheets v2?

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


截至 5 月 5 日,我已使用变通方法解决此问题。要获取我的云端硬盘中文件夹的 ID,我右键单击目标文件夹,然后从出现的菜单中选择 select "Get shareable link"。我复制 link 并将其粘贴到任何文本编辑器上。 link 看起来像这样:https://drive.google.com/open?id=9JHS74hgls049J50。我在 "id = " 关键字之后复制随机字符串。这就是我在使用 PyGSheets 创建文件夹时提供的值:

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

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

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

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

文件夹名称/ID:

pygsheets.drive.list(),在您的例子中 con.drive.list(),将给出驱动器中所有文件和文件夹的元数据字典列表。我做了一个简单的函数,仅将文件夹名称(键)和 ID(值)提取到字典中,以便更简单地查找并与创建方法一起使用:

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)