【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服务器:

bash 复制代码
java -jar tika-server-x.x.jar

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

docker安装方式

bash 复制代码
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变得十分简单。通过以下命令安装:

bash 复制代码
pip install tika

提取文件内容

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

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

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包,使你能够访问包内的文件内容。以下示例演示如何处理压缩包:

python 复制代码
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"])
json 复制代码
{'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处理压缩包特别方便,它自动管理文件解压和内容提取的复杂性,使得开发者可以专注于数据分析和处理逻辑。

相关推荐
Mikhail_G12 分钟前
Python应用变量与数据类型
大数据·运维·开发语言·python·数据分析
YuTaoShao17 分钟前
Java八股文——集合「List篇」
java·开发语言·list
hello kitty w43 分钟前
Python学习(7) ----- Python起源
linux·python·学习
Bl_a_ck1 小时前
【JS进阶】ES6 实现继承的方式
开发语言·前端·javascript
站大爷IP1 小时前
Python文本序列的类型
python
ALLSectorSorft1 小时前
上门服务小程序会员系统框架设计
小程序·apache
愈努力俞幸运1 小时前
c++ 头文件
开发语言·c++
千千寰宇1 小时前
[Java/Python] Java 基于命令行调用 Python
python·java se-jdk/jvm
永日456701 小时前
学习日记-day24-6.8
开发语言·学习·php
BillKu1 小时前
Java后端检查空条件查询
java·开发语言