【Python】 使用Apache Tika和Python实现zip、csv、xls等多格式文件文本内容提取


时间的电影 结局才知道
原来大人已没有童谣
最后的叮咛
最后的拥抱
我们红着眼笑
我们都要把自己照顾好
好到遗憾无法打扰
好好的生活
好好的变老
好好假装我 已经把你忘掉
                     🎵 五月天《好好》


在进行数据分析、搜索引擎优化或任何需要处理大量不同格式文件的任务时,文本内容提取和处理压缩包变得尤为重要。Apache Tika是一款强大的工具,它不仅可以提取各种文档和媒体文件的文本内容和元数据,还能处理压缩文件。虽然Tika是基于Java开发的,但是通过Tika的服务器模式和Python的Tika库,我们可以轻松地在Python项目中利用它的功能。

启动Apache Tika服务器

在使用Python进行文件内容提取之前,你需要启动Apache Tika服务器。这可以通过以下步骤完成:

下载Tika服务器jar文件:访问Apache Tika官网,下载最新版的tika-server-x.x.jar文件。

运行Tika服务器:确保安装了Java,然后在命令行或终端中运行以下命令来启动Tika服务器:

java -jar tika-server-x.x.jar

替换x.x为你下载的版本号。默认情况下,Tika服务器会监听9998端口。

docker安装方式

docker search apache/tika
docker run --name tika -d -p 0.0.0.0:9998:9998 apache/tika

安装Python Tika库

Python的Tika库封装了与Tika服务器交互的复杂性,使得在Python中使用Tika变得十分简单。通过以下命令安装:

pip install tika

提取文件内容

安装tika库并启动Tika服务器后,就可以编写Python代码来提取文件内容了。

示例:提取文档内容和元数据

from tika import parser
serverURL = 'http://127.0.0.1:9998'
filepath = 'path/to/your/test.txt'
parsed = parser.from_file(filepath,serverURL)
print("Text Content:\n", parsed["content"])
print("\nMetadata:", parsed["metadata"])

解压缩包并提取内容

除了提取单个文件的内容,Tika还能处理压缩文件,如ZIP或TAR包,使你能够访问包内的文件内容。以下示例演示如何处理压缩包:

from tika import unpack
archive_path = 'path/to/your/test.zip'
serverURL = 'http://127.0.0.1:9998'
parsed = unpack.from_file(archive_path,serverURL)
# 假设压缩包内包含文本文件,打印提取的内容
print("Archive Content:\n", parsed["content"])
{'content': '\n\n',
 'metadata': {'X-TIKA:Parsed-By': ['org.apache.tika.parser.DefaultParser',
   'org.apache.tika.parser.pkg.PackageParser'],
  'X-TIKA:Parsed-By-Full-Set': ['org.apache.tika.parser.DefaultParser',
   'org.apache.tika.parser.pkg.PackageParser'],
  'resourceName': "b'test.zip'",
  'Content-Length': '304',
  'Content-Type': 'application/zip'},
 'attachments': {'test1.txt': b'\xe5\x8e\x8b\xe7\xbc\xa9\xe5\x8c\x85\xe6\xb5\x8b\xe8\xaf\x95\n',
  'test2.txt': b'\xe5\x8e\x8b\xe7\xbc\xa9\xe5\x8c\x85\xe6\xb5\x8b\xe8\xaf\x95\n'}}

在这个例子中,from_file方法会处理压缩包文件,自动解压并提取其中文件的内容。这对于需要批量处理多个压缩存档中的文档非常有用。

总结

Apache Tika是一个功能强大的内容分析工具,可以帮助开发者提取文档、图片以及压缩包中的文本内容和元数据。通过Python的Tika库,我们可以轻松将这些功能集成到Python应用中,无论是数据清洗、内容提取还是自动化文档处理任务,Tika都能大显身手。使用Tika处理压缩包特别方便,它自动管理文件解压和内容提取的复杂性,使得开发者可以专注于数据分析和处理逻辑。

相关推荐

  1. Python实战文本内容提取

    2024-04-03 05:12:07       36 阅读
  2. python提取word文档内容的示例

    2024-04-03 05:12:07       50 阅读
  3. 使用python读取类型文件夹中的文档内容

    2024-04-03 05:12:07       39 阅读
  4. 使用Python提取PDF中的文本表格数据

    2024-04-03 05:12:07       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-03 05:12:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-03 05:12:07       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-03 05:12:07       82 阅读
  4. Python语言-面向对象

    2024-04-03 05:12:07       91 阅读

热门阅读

  1. 定时推送任务 Apache HttpClient/okhttp3

    2024-04-03 05:12:07       30 阅读
  2. P1002 过河卒:图论动态规划入门

    2024-04-03 05:12:07       37 阅读
  3. 基于 CentOS7 制作 Apache HTTPD 2.4.58 的RPM安装包

    2024-04-03 05:12:07       36 阅读
  4. 简单了解裸眼3D呈现技术

    2024-04-03 05:12:07       29 阅读
  5. gin源码分析(2)gin启动http服务

    2024-04-03 05:12:07       29 阅读
  6. Unity VR背包系统项目(1)

    2024-04-03 05:12:07       28 阅读
  7. 数据分析 -- numpy

    2024-04-03 05:12:07       35 阅读
  8. 物联网虚拟仿真实验教学中心平台建设

    2024-04-03 05:12:07       33 阅读
  9. Python在数据分析与可视化中的深度实践

    2024-04-03 05:12:07       37 阅读
  10. .vimrc文件的语句语法

    2024-04-03 05:12:07       32 阅读
  11. 2024Mathorcup数学建模竞赛A题B题C题D题

    2024-04-03 05:12:07       38 阅读