如何使用PyGSheets v2在特定的文件夹/目录中创建新工作表?

时间:2019-04-30 04:53:20

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

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


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

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

有没有更有效的方法?

1 个答案:

答案 0 :(得分: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)