当前位置: 首页 > 知识库问答 >
问题:

在位于Google云存储的PDF文件上使用textract

裴星洲
2023-03-14

我想将textract应用到Google云存储上托管的pdf文件。

我已经用download_as_string()使用并解析了一个txt文件(一切正常)

storage_client = storage.Client()
bucket = storage_client.get_bucket('bucket-for-pdf')
blob = bucket.get_blob('keywords.txt')
keywords_file = blob.download_as_string().decode('utf8')
storage_client = storage.Client()
bucket = storage_client.get_bucket('bucket-for-pdf')
blob = bucket.get_blob(file_name)
file_name = blob.download_to_file(file_name)
return textract.process(file_name, language='eng',
                        encoding='utf-8').decode('utf-8')

上述代码导致错误:

self._stream.write(chunk)
AttributeError: 'str' object has no attribute 'write'

共有1个答案

车胤运
2023-03-14

download_to_file方法接受文件对象,而不是文件名。试着做一些类似的事情:

file_name = "/tmp/my-file"
storage_client = storage.Client()
bucket = storage_client.get_bucket('bucket-for-pdf')

with open(file_name, "wb") as file_obj:
    blob.download_to_file(file_obj)

return textract.process(file_name, language='eng', encoding='utf-8').decode('utf-8')
 类似资料:
  • 如果在GCS上存储了一个。txt文件,该文件包含将用作一部分的单词列表,可以在apache beam管道中动态访问该列表吗?我知道我可以将这个列表定义为管道中的全局变量,但我不确定如何将整个文件读入列表,以及是否有任何beam技巧来实现这一点。有什么建议吗?这是我当前的实现,这是不工作的… 我得到以下错误“TypeError:类型'_invalidunpickledpCollection'的参数不

  • 我在本地开发服务器上运行代码,但使用在项目上配置的GCS默认桶名。 Python 2.7版

  • 我正在尝试建立一个基于python的基本谷歌应用引擎站点,允许用户将文件上传到谷歌云存储(主要是图像) 我已经阅读了JSON API和GCS客户端库概述(以及blobstore等)的文档,但仍然没有很好地了解哪种方法是最好的以及它们之间的关系。如果有人能概述一下,或者给我指出一些我可以查看的资源,那就太好了 此外,任何相关的示例代码都会非常有用。我已经能够在此处运行上载示例,但不确定它们是否对应用

  • 我已经使用谷歌云控制台将几个文件上传到了谷歌云存储的同一个文件夹中。我现在想把几个文件移动到谷歌云存储中的一个新创建的文件夹中,但我无法通过谷歌云控制台看到如何做到这一点。我通过上的命令提示符指令找到了移动文件的说明。但是,我对命令行界面不满意,并且无法在我的机器上使用。 有没有办法通过谷歌云控制台将谷歌云存储中的文件从一个文件夹移动到另一个文件夹?

  • 我试图链接PHP文件在谷歌云存储,但得到他们作为纯文本。我想连接到其他文件,但没有应用程序引擎,这是专门为应用程序引擎写的所有留档,甚至找不到桶存储是否有PHP支持,即使它应该。任何线索如何链接PHP文件正确的云存储?

  • 我已经上传了. jpg文件到GCS一段时间,我没有改变我的代码,在过去的5个月里做这个操作。大约一个月前,我开始意识到我上传的一些图像文件开始被列为类型:文件夹,而不是像以前那样被列为类型:图像/jpeg。 大约一个月前,地面军事系统的用户界面发生了变化,我感觉背景中的某些东西也发生了变化,要么是谷歌的错误(不太可能),要么是我一直以错误的方式上传图片(可能有一些错误的元数据,或者是一些阻止地面军