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

相关推荐
Themberfue2 小时前
Redis ⑦-set | Zset
java·开发语言·数据库·redis·sql·缓存
__lost3 小时前
MATLAB画出3d的常见复杂有机分子和矿物的分子结构
开发语言·人工智能·matlab·化学·分子结构
hi星尘3 小时前
深度解析:基于Python的微信小程序自动化操作实现
python·微信小程序·自动化
Doker 多克4 小时前
Django 缓存框架
python·缓存·django
夜夜敲码4 小时前
C语言教程(十八):C 语言共用体详解
c语言·开发语言
大学生亨亨4 小时前
go语言八股文(五)
开发语言·笔记·golang
raoxiaoya4 小时前
同时安装多个版本的golang
开发语言·后端·golang
miracletiger6 小时前
uv 新的包管理工具总结
linux·人工智能·python
cloues break.6 小时前
C++进阶----多态
开发语言·c++
我不会编程5556 小时前
Python Cookbook-6.10 保留对被绑定方法的引用且支持垃圾回收
开发语言·python