【问题标题】:How do you create a new sheet in a specific folder/directory using PyGSheets v2?如何使用 PyGSheets v2 在特定文件夹/目录中创建新工作表?
【发布时间】:2019-04-30 04:53:20
【问题描述】:

我想使用 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")

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

【问题讨论】:

    标签: google-drive-api google-sheets-api pygsheets


    【解决方案1】:

    看起来您已经知道如何通过文件 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)
    

    【讨论】:

    • 这很好用!我唯一需要做的就是与我的 Google 服务帐户的 client_email 共享该文件夹,以便能够看到它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 2013-04-15
    • 2020-08-18
    • 2014-01-16
    • 2021-01-13
    • 2012-01-13
    相关资源
    最近更新 更多