- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚开始使用 google colaboratory (colab) 和 pydrive 。我正在尝试使用 colab 加载“CAS_num_strings”中的数据,该数据是在我的 Google 驱动器上特定目录中的 pickle 文件中编写的:
pickle.dump(CAS_num_strings,open('CAS_num_strings.p', 'wb'))
dump_meta = {'title': 'CAS.pkl', 'parents': [{'id':'1UEqIADV_tHic1Le0zlT25iYB7T6dBpBj'}]}
pkl_dump = drive.CreateFile(dump_meta)
pkl_dump.SetContentFile('CAS_num_strings.p')
pkl_dump.Upload()
print(pkl_dump.get('id'))
其中 'id':'1UEqIADV_tHic1Le0zlT25iYB7T6dBpBj' 确保它具有由该 id 指定的特定父文件夹。最后一个打印命令给出了输出:
'1ZgZfEaKgqGnuBD40CY8zg0MCiqKmi1vH'
因此,我能够创建并转储 id 为“1ZgZfEaKgqGnuBD40CY8zg0MCiqKmi1vH”的 pickle 文件。现在,我想在另一个 colab 脚本中加载此 pickle 文件以用于不同的目的。为了加载,我使用命令集:
cas_strings = drive.CreateFile({'id':'1ZgZfEaKgqGnuBD40CY8zg0MCiqKmi1vH'})
print('title: %s, mimeType: %s' % (cas_strings['title'], cas_strings['mimeType']))
print('Downloaded content "{}"'.format(cas_strings.GetContentString()))
这给了我输出:
title: CAS.pkl, mimeType: text/x-pascal
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
<ipython-input-9-a80d9de0fecf> in <module>()
30 cas_strings = drive.CreateFile({'id':'1ZgZfEaKgqGnuBD40CY8zg0MCiqKmi1vH'})
31 print('title: %s, mimeType: %s' % (cas_strings['title'], cas_strings['mimeType']))
---> 32 print('Downloaded content "{}"'.format(cas_strings.GetContentString()))
33
34
/usr/local/lib/python3.6/dist-packages/pydrive/files.py in GetContentString(self, mimetype, encoding, remove_bom)
192 self.has_bom == remove_bom:
193 self.FetchContent(mimetype, remove_bom)
--> 194 return self.content.getvalue().decode(encoding)
195
196 def GetContentFile(self, filename, mimetype=None, remove_bom=False):
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
如您所见,它找到文件 CAS.pkl 但无法解码数据。我希望能够解决这个错误。据我了解,正常的 utf-8 编码/解码在正常的 pickle 转储和使用“wb”和“rb”选项加载期间可以顺利工作。然而在目前的情况下,转储后我似乎无法从上一步中创建的谷歌驱动器中的pickle文件加载它。错误存在于我的某个地方,无法指定如何在“return self.content.getvalue().decode(encoding)”处解码数据。我似乎无法从这里( https://developers.google.com/drive/v2/reference/files#resource-representations )找到要修改的关键字/元数据标签。任何帮助表示赞赏。谢谢
最佳答案
问题是 GetContentString
仅当内容是有效的 UTF-8 字符串 ( docs ) 时才有效,而您的 pickle 则不是。
不幸的是,您必须做一些额外的工作,因为没有 GetContentBytes
- 您必须将内容保存到文件中并将其读回。这是一个工作示例: https://colab.research.google.com/drive/1gmh21OrJL0Dv49z28soYq_YcqKEnaQ1X
关于python - "UnicodeDecodeError: ' utf-8 ' codec can' t 解码字节 0x80",同时使用 pydrive 在 google colaboratory 上加载 pickle 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49145328/
我知道如何使用 PyDrive 从我的驱动器下载文件,问题是我需要在共享驱动器上下载(或至少打开)一个 xlsx 文件。到目前为止,这是我下载文件的代码: from pydrive.auth impo
我使用库pydrive对于谷歌驱动器。现在我需要获取 Google 云端硬盘中的所有文件夹(根、父、子)名称。 我发现了这个: self.drive.ListFile().GetList() 但它返回
对不起我的英语。我使用 pydrive 与 google drive api 一起工作。我想获取文件列表。我这样做: return self.g_drive.ListFile({'q': 'tra
我的 Google 云端硬盘看起来像这样: picture1.jpg song1.mp3 a/b/file1.txt a/b/file2.txt a/b/file3.jpg a/b/file4.m4a
我一直在尝试使用 PyDrive 将文件从一个文件夹移动到我的谷歌驱动器中的另一个文件夹 file2 = drive.CreateFile({'id': }) file2['parents']= fi
我正在尝试将文件上传到我的 Google 驱动器,下面的代码有效。 如何指定要上传到哪个文件夹,即驱动器---与我共享--csvFolder from pydrive.auth import Goog
我正在尝试将 .doc 文件作为 html 从 Google 云端硬盘导出到。这是我的代码。我在文档中没有看到任何有关如何将文档下载为 html 的内容。但这里是我到目前为止的代码示例。我不确定 do
我正在尝试对 PyDrive 使用双重/口是心非。但是,我不断收到一条非常神秘的错误消息,告诉我引用 PyDrive 安装联机帮助页。没有提供解决方案。 这是我正在运行的重复命令的输出,包括错误。 $
我正在使用 PyDrive 将文件从我使用 Pyinstaller 打包的桌面 Python 应用程序上传到 GoogleDrive。我想尽可能地隐藏 client_secrets.json,所以我将
我正在使用 PyDrive ( http://pythonhosted.org/PyDrive/ ) 来简化对 Google 云端硬盘的 API 访问,但在尝试从云端硬盘中删除现有文件时遇到了障碍。我
在我的应用程序中,用户 A 使用 PyDrive 和 Google Drive 创建了一个文件,并使用保存到云端硬盘 self.User.GoogleFile.SetContentString(jso
我使用 Python 和 PyDrive 编写了一个程序。该程序捕获图像并将其上传到 Google Drive 上的文件夹。这是我的身份验证和上传的基本代码: gauth = GoogleAuth()
我正在尝试在使用 pydrive 库 (https://pypi.python.org/pypi/PyDrive) 时自动执行 GoogleAuth 过程。 我已经设置了 pydrive 和 goog
我正在尝试使用从(Ubuntu)服务器远程工作的python脚本自动将文件上传到谷歌驱动器。 在我的代码中,我有以下来自 Pydrive 的简单行: from pydrive.auth import
我正在尝试通过 PyDrive 将一个大型 csv 压缩文件(~6GB)上传到 Google Drive,但每次我尝试通过以下方式上传时: file = self.drive.CreateFile({
我正在尝试安装 PyDrive,以便将我的工作文件夹自动备份到 Google 云端硬盘。 我正在尝试使用 pip 在终端中安装 PyDrive,但没有这样的运气。 当我运行时 pip install
我想使用 Google Drive API 使用 cronjob 在其上存储一些备份。我只是不明白如何使用服务帐户使用 PyDrive。当我生成服务帐户文件时,我将它作为我的脚本放在目录中 clien
我正在尝试使用 PyDrive 从 Google Drive 下载文件。我按照指示http://pythonhosted.org/PyDrive/filemanagement.html#downloa
我正在使用 PyDrive 在 Google 云端硬盘中创建文件,但我在处理实际的 Google 文档类型项目时遇到了问题。 我的代码是: file = drive.CreateFile({'titl
我正在使用 pydrive 1.2.1 在 python 3.5.2 中编写一个小脚本,我需要能够删除一个文件,该文件不是存储在我的计算机本地,而是存储在我的 Google Drive 帐户中。 do
我是一名优秀的程序员,十分优秀!