gpt4 book ai didi

python - 如何使用 Python 将 .docx 文件上传到我的 Google 云端硬盘?

转载 作者:太空宇宙 更新时间:2023-11-03 20:47:51 28 4
gpt4 key购买 nike

我编写了一个简单的脚本来将 .docx 文件上传到我的 GoogleDrive 帐户。除了文件之外,它工作得很好。身份验证有效,上传文件有效。我在编码方面遇到了一些问题,但现在使用 Latin-1 我可以毫无错误地上传文件。但上传后,只有一个无标题文档,内容如下:

[Content_Types].xml l"%3 ^i7+ %p)O 5}nH"t4Q+ |T\y _rels/.rels jH[{ l0/% word/_rels/document.xml.rels }-;} PB [^^l :>S!?p (!O>z word/document.xml )Zb#~J K{N$ 7R'~/ $]t# V-wZ TMco %NPB5 ~e!(m zJSC aPdO4 Jr#Cv l%|Y AxQT;K3[ word/theme/theme1.xml p{{<F! :@q" ?~|f hNC- 055B jf;a ssFb dZ#QZn: ]{,n t}Vz}1 !(~X "(<Ik^> o[HD kW:A word/settings.xml rZiidm &sY5 \w'5>X ^JL\ I'I6 9FVM v8:y- o9E1G "ogH: :nM word/fontTable.xml WkU+ PlQ(! IX(* +>_ze|PXPD OJK ?eK #83> word/webSettings.xml Bk"15i ​​I? | RjRlq docProps/app.xml X2<$ I3S.u docProps/core.xml P nQ d\l2 ) C5 $Tehk J06t UUA5iQ 10Tse >yx\-P word/styles.xml IPL0 U&dz2 5&{K 5IwM ,x9fY( fMNF< {2bjkrj G!vMD -TA{ ~TAG 0Epr 9F{7w x0-d x^(G ynL" fl9g2z Z{Jtx [z^| Q)aaT2X )aD[ qfaT z#B^ -iwJ x_}[ I]Qx3 eTHA cTHA py}) t /5DyK hnB_ )5.[ %5.[ /5.[ eKmR )5.[ CfmmV RyxS%u u}nY xegY' &m]n [Content_Types].xmlPK _rels/.relsPK word/_rels/document.xml.relsPK word/document.xmlPK word/theme/theme1.xmlPK word/settings.xmlPK word/fontTable.xmlPK word/webSettings.xmlPK RjRlq docProps/app.xmlPK docProps/core.xmlPK word/styles.xmlPK

如何使脚本处理 .docx 格式?我读到 .docx 文件实际上是 zip 文件,这是真的吗?

还有一个问题:如何上传特定 GoogleDrive 文件夹中的文件?我必须在我的 GoogleDrive-API 项目中指定这一点吗?

提前致谢:)

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
import os

g_login = GoogleAuth()
g_login.LocalWebserverAuth()
drive = GoogleDrive(g_login)

test = "Path to my BA_UploadTest.docx"
with open(test, "r", encoding="Latin-1")as file:
fn = os.path.basename(file.name)
file_drive = drive.CreateFile({'BA_UploadTest.docx': os.path.basename(file.name)})
file_drive.SetContentString(file.read())
file_drive.Upload()
print('File upload successful!')

最佳答案

通过使用 Google Drive API Documentation 中提供的 Python 快速入门代码,您可以通过在请求中指定文件的 MIME 类型将文件上传到 Google 云端硬盘,而不是依赖 MediaFileUpload class 中指定的默认值 None。 .

The MIME Type for .docx filesapplication/vnd.openxmlformats-officedocument.wordprocessingml.document ,因此可以这样设置。使用下面的代码,我能够将 .docx 文件上传到我的 Google 云端硬盘,而不会出现任何编码或可读性问题:

import authentication
from googleapiclient.discovery import build
from googleapiclient.http import MediaFileUpload

#...

def docxDriveUpload(service):

file_metadata = {'name': 'demo.docx'}
media = MediaFileUpload('demo.docx', mimetype='application/vnd.openxmlformats-officedocument.wordprocessingml.document')

file = service.files().create(body = file_metadata, media_body = media, fields = 'id').execute()

print 'File upload successful! File ID: %s' % file.get('id')

要将文件上传到云端硬盘中的特定文件夹,您需要在上传查询中使用唯一的文件夹 ID。您可以通过访问 drive.google.com、在浏览器 View 中打开文件夹并复制网址中/folders/后的字符串来获取此信息。https://drive.google.com/drive/u/0/folders/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

关于python - 如何使用 Python 将 .docx 文件上传到我的 Google 云端硬盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56456311/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com