我想将 google 驱动器的文档导出为 pdf | Google 开车 Api Python

I want to export a document of google drive as pdf | Google Drive Api Python

你好很高兴认识你:), 我正在编写一个应用程序,其中一部分使用一种方法从 google 文档下载文档 Docx 以将其导出为 pdf,但我不知道在 python 中可以在哪里看到下载的文件。 我正在使用此 URL 中的 google 文档 API 文档示例进行编码:https://developers.google.com/drive/api/v3/manage-downloads#python

这是我的代码:

#Block 3 : Convertir el Documento en PDF
            print("Se inicia la conversion a PDF")
            time.sleep(4)
            service = build('drive', 'v3', credentials=creds)
            
            request = service.files().export_media(fileId=documentId,mimeType='application/pdf')
            fh = io.BytesIO()
            downloader = MediaIoBaseDownload(fh, request)
            done = False
            while done is False:
                status, done = downloader.next_chunk()
                print("Download %d%%." % int(status.progress() * 100))
            
            print("Se ha completado la descarga")

终端显示下载已完成,但我在任何地方都看不到文件 PD:我是 python.

的初学者

终端是这样说的:

Se inicia la conversion a PDF
Download 100%.
Se ha completado la descarga

如果有人知道更好的方法或指南,我将不胜感激:D!
这是我软件工程实习的项目

此致

with open(output_filename, "wb") as output:
    while True:
        data = downloader.read()
        if data == "":
            break
        output.write(data)

尝试这种方式,您可以使用下载器变量获取数据

我已经找到了解决方案 :D

更改前:

#Block 3 : Convertir el Documento en PDF
            print("Se inicia la conversion a PDF")
            time.sleep(4)
            service = build('drive', 'v3', credentials=creds)
            
            request = service.files().export_media(fileId=documentId,mimeType='application/pdf')
            fh = io.BytesIO()
            downloader = MediaIoBaseDownload(fh, request)
            done = False
            while done is False:
                status, done = downloader.next_chunk()
                print("Download %d%%." % int(status.progress() * 100))
            
            print("Se ha completado la descarga")

修改后(解决)

#Block 3 : Convertir el Documento en PDF
            print("Se inicia la conversion a PDF")
            time.sleep(4)
            service = build('drive', 'v3', credentials=creds)
            
            request = service.files().export_media(fileId=documentId,mimeType='application/pdf')
            fh = io.BytesIO()
            downloader = MediaIoBaseDownload(fh, request)
            done = False
            while done is False:
                status, done = downloader.next_chunk()
                print("Download %d%%." % int(status.progress() * 100))
            

            fh.seek(0)
            with open('newpdfboleta.pdf', 'wb') as f:
                shutil.copyfileobj(fh, f, length=131072)
           
            print("Se ha completado la descarga")
            print(fh)
        

编辑: 我忘记了一个很重要的事情,你还需要在代码中导入shutil。

import shutil

非常感谢那些试图帮助我的人! 如果您对此有疑问,可以随时问我! 不客气。

此致