我正在尝试使用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?
答案 0 :(得分:0)
我怀疑您需要将上传的文件包装在io.BytesIO
中。
这是一个完整的示例,展示了如何使用PyPDF2打开上传的PDF - https://colab.research.google.com/notebook#fileId=1XlmXcp4xnrUGMUArevxiGNlrbMOMECO1
关键位是:
pdf = PdfFileReader(io.BytesIO(uploaded['abc123.pdf']))