Skip to main content

一组从文件路径中检索信息的工具。

项目描述

Path2Insight

特拉维斯 阅读文档

Path2Insight (p2i) 是一个模块化和可扩展的 python 模块,旨在提供一套统一和全面的处理工具来分析文件路径。P2i 支持静态文件系统分析,无需访问原始物理存储。基本上,扫描作为文本文件导出的存储内容就足以探索保存的资源。也不需要访问文件的内容,因为 p2i 模块将文件路径作为字符串导入。

加载后,文件路径作为 python 对象存储在内存中,支持:预处理、文本处理以及文件夹和文件的描述性分析。

预处理:根据多个标准(例如父文件夹、深度)对文件进行采样、排序和选择。

文本处理:在几个可扩展的分词器的帮助下,将文件路径分块成标记(完整路径、词干和名称)、n-gram 或完整路径。此外,标记器提供了基于文件结构和内容聚合文件的选项(为实体识别或分类任务等进一步分析准备路径)。

描述性分析: P2i 实现了标记、词干和扩展的计数器。它还支持统计功能,例如扩展、词干和名称分布的 X2 测试。此外,文件夹深度分析功能有助于表示文件夹结构的复杂性。

下表显示了 Path2Insight 如何区分和补充低级 python 模块(pathlib 和 os.path)提供的功能。

功能性

P2i

路径库

操作系统路径

预处理

Pathlib + 采样、排序、选择

匹配,加入路径

范数,范数路径

描述性统计

计数器:词干、扩展名、名称。标记器。分词器

操作系统统计

操作系统统计

文本处理

Pathlib + Tokens、n-grams、标记器、lower、upper、……

词干、名称、父级、扩展驱动器,...

分裂

访问或修改系统信息

否,可以通过加入完整路径链接到其他元数据(日期时间、用户)

是的,chmod,当前文件夹。…

是的,用户、大小、日期时间、描述符……

P2i 是无依赖的(Python 2.7 用户只需要 pathlib2)、快速且可扩展的路径处理工具包。它兼容主要的数据分析python模块,如pandas、scikit-learn、nltk和matplotlib,以扩展path2insight的分析可能性。

例子

导入模块并使用静态文件路径加载演示数据集(或使用 path2insight.walk从您的文件系统收集)。

>>> import path2insight
>>> from path2insight.datasets import load_ensembl

>>> filepaths = load_ensembl()
>>> path2insight.depth_counts(filepaths)
Counter({3: 1, 4: 11, 5: 39424, 6: 5543, 7: 2733, 8: 3388})
>>> path2insight.token_counts(filepaths).most_common(10)
[('txt', 31977),
 ('gene', 13798),
 ('ensembl', 12727),
 ('dm', 12500),
 ('homolog', 7380),
 ('fa', 5890),
 ('chromosome', 5011),
 ('feature', 4878),
 ('dna', 4608),
 ('90', 3404)]
>>> path2insight.extension_counts(filepaths).most_common(10)
[('.gz', 44427),
 ('', 3094),
 ('.bb', 847),
 ('.nsq', 349),
 ('.nin', 349),
 ('.nhr', 349),
 ('.tsv', 336),
 ('.psq', 250),
 ('.pin', 250),
 ('.phr', 250)]
>>> path2insight.select_re(filepaths, level5='micro.*')
[PosixFilePath('/Volumes/release-90/variation/VEP/microtus_ochrogaster_vep_90_MicOch1.0.tar.gz'),
 PosixFilePath('/Volumes/release-90/variation/VEP/microtus_ochrogaster_refseq_vep_90_MicOch1.0.tar.gz'),
 PosixFilePath('/Volumes/release-90/variation/VEP/microtus_ochrogaster_merged_vep_90_MicOch1.0.tar.gz'),
 PosixFilePath('/Volumes/release-90/variation/VEP/microcebus_murinus_vep_90_Mmur_2.0.tar.gz'),
 PosixFilePath('/Volumes/release-90/rdf/microtus_ochrogaster/microtus_ochrogaster_xrefs.ttl.gz.graph'),
>>> path2insight.distance_on_token(filepaths[0:10])
array([[ 0.        ,  2.        ,  1.41421356,  3.        ,  3.        ],
       [ 2.        ,  0.        ,  2.44948974,  3.31662479,  3.31662479],
       [ 1.41421356,  2.44948974,  0.        ,  3.        ,  3.        ],
       [ 3.        ,  3.31662479,  3.        ,  0.        ,  1.41421356],
       [ 3.        ,  3.31662479,  3.        ,  1.41421356,  0.        ]])

安装和依赖

Path2Insight 在 Pypi 上可用。这使得可以通过以下方式安装它:

pip install path2insight

升级 path2insight 使用

pip install --upgrade path2insight

Path2Insight 适用于 Python 2.7 和 Python 3.4+。Path2Insight 在很大程度上依赖于pathlib模块。该模块是 Python 3.4 或更高版本的一部分。对于 Python 2,使用了反向移植pathlib2。因此,建议在 Python 3.4 或更高版本中使用 Path2Insight。

Path2Insight 的一些子模块依赖于其他 Python 包(numpy、pandas、sklearn、scipy、jellyfish)。可以通过在requirements-full.txt文件中安装软件包来获得完整安装。

pip install -r requirements-full.txt

引用

跟随。

作者

  • 阿梅尔·列斐伏尔

  • 乔纳森·德布鲁因

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

path2insight-1.0b2.tar.gz (1.6 MB 查看哈希

已上传 source

内置分布

path2insight-1.0b2-py2.py3-none-any.whl (1.6 MB 查看哈希

已上传 py2 py3