在实验室中维护数据类型

时间:2018-01-11 14:24:46

标签: python pdf google-colaboratory

我正在尝试使用PyPDF2来读取pdf文档并输出纯文本字符串。但是,当我使用代码将我的pdf文件上传到colaboratory时:

uploaded = files.upload()

for fn in uploaded.keys():
  print('User uploaded file "{name}" with length {length} bytes'.format(
  name=fn, length=len(uploaded[fn])))

它会自动将其转换为str类型,而不是将其保留为编码字符串。这会给PyPDF.PdfFileReader()带来错误,但是如果你打印字符串它仍然包含所有编码字符:

  

gsutilCheatSheet.pdf => %PDF-1.5   %   1 0 obj   <> /元数据117 0 R / ViewerPreferences 118 0 R>>   endobj

有没有办法让导入的文档保持原始编码格式,还是有其他方法可以删除编码,一旦它已经是str?

1 个答案:

答案 0 :(得分:0)

我怀疑您需要将上传的文件包装在io.BytesIO中。

这是一个完整的示例,展示了如何使用PyPDF2打开上传的PDF - https://colab.research.google.com/notebook#fileId=1XlmXcp4xnrUGMUArevxiGNlrbMOMECO1

关键位是:

pdf = PdfFileReader(io.BytesIO(uploaded['abc123.pdf']))