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

相关推荐
qq_161111271 小时前
Jenkins+Python自动化测试持续集成详细教程
自动化测试·python·jenkins·教程·持续集成
爱吃苹果的梨叔5 小时前
训练集群网络中断怎么办?智算机房的 Console 串口排障方案
网络·python·智能路由器·php
李妍.8 小时前
02Numpy基础(上)
开发语言·python
TheBestRucy8 小时前
Python 九阳神功之贰:面向对象(下)
开发语言·python
2601_965958468 小时前
口腔黏膜脱皮超2周未愈建议及时就医
人工智能·python
AI_小站9 小时前
刚面完百度的 Agent 开发岗,我才发现:世界就是个巨大的草台班子
java·开发语言·人工智能·spring·百度·langchain
微小冷9 小时前
在不同空间中展示数据(欧式、球面、庞加莱圆盘)
python·双曲空间·微分几何·geomstats·庞加莱圆盘·球面
felixking9 小时前
C++20 协程
开发语言·c++·协程
weixin_4316004410 小时前
Agent Workflow 学习向:Code 节点,比模板更强的变量加工
后端·python·学习·ai·
讲温控就好了10 小时前
从医疗影像到能源存储——芯片冷却温控技术的跨行业赋能
人工智能·python·能源