Python 现有平面文件的类DB接口

Python 现有平面文件的类DB接口,python,sql,database,flat-file,Python,Sql,Database,Flat File,我正在寻找做某事的最佳方式,但我不确定现有技术是否能帮助我做到这一点 我有大量的数据存储在平面文件中,比如说主要是标准的csv文件,有或没有标题,包含ID和数字。这些文件分布在不同的文件夹中,但以“有组织的方式”(即,我知道如何参数化路径,它们不仅仅是随机分布的) 问题是是否有一种方法可以像使用正确的数据库一样使用这些文件。也就是说,我想有一个界面,我可以查询和获得答复。让我给你举个例子:假设我给包含不同字段的文件标注了日期。每个文件都有一个ID列表和许多条目,如值a、值B、值C等。 例如,我想

我正在寻找做某事的最佳方式,但我不确定现有技术是否能帮助我做到这一点

我有大量的数据存储在平面文件中,比如说主要是标准的csv文件,有或没有标题,包含ID和数字。这些文件分布在不同的文件夹中,但以“有组织的方式”(即,我知道如何参数化路径,它们不仅仅是随机分布的)

问题是是否有一种方法可以像使用正确的数据库一样使用这些文件。也就是说,我想有一个界面,我可以查询和获得答复。让我给你举个例子:假设我给包含不同字段的文件标注了日期。每个文件都有一个ID列表和许多条目,如值a、值B、值C等。 例如,我想知道在日期x和日期y之间的一段时间内,每个ID的值B是多少,以A开头。如果所有数据都聚集在一个经典的SQL表中,我会查询如下内容

SELECT ValueB FROM MY_TABLE WHERE ID LIKE 'A%' AND Date > x AND Date < y;
从MY_表中选择ValueB,其中ID为'A%'和Date>x,Date
是否有任何技术允许您从平面文件开始这样做? 我只需要读他们的书。这些文件由其他进程自动生成,无需编辑。另一方面,新数据是定期添加的,所以我想“动态地”添加。另外,如果这项技术是基于Python的,那也不错(但不是必需的),我对Python更为熟悉。 在本例中,我设想的想法是通过文件路径列表来定义“MY_表”。该表在硬盘中的任何位置都不作为单个实体存在,但数据实际上是这样表示的

在这方面的任何帮助都将不胜感激


谢谢大家!

看看哪个州可以使用CSV文件作为数据源。

看看哪个州可以使用CSV文件作为数据源。

理论上,sqlite虚拟表可以做到这一点;一个快速的Google表示可能需要ASPW绑定。实际上,如果您能将这些数据带到真正的Sqlite表中,您会得到很好的服务。谢谢您的评论。我的印象是SQLite将把整个数据库存储在一个巨大的平面文件中,因此建议只用于小型项目。这里我们讨论的是几百Gb,因此理想情况下,我需要能够“动态”选择所需文件并只打开这些文件的东西。这有意义吗?如果您有多余的磁盘空间(两倍或更多)将数据加载到Sqlite中,我会第一次尝试。如果您在Windows上,那么使用MSFT ODBC文本文件数据库驱动程序也是一个选项;如果您手头有Postgres(这很容易做到),那么文件FDW()是一个选项。在任何情况下,您都必须决定如何将文件映射到表(这里没有魔法,还有工作要做),但许多不同的环境都能够将文本文件映射为数据库文件(或导入它们);一个快速的Google表示可能需要ASPW绑定。实际上,如果您能将这些数据带到真正的Sqlite表中,您会得到很好的服务。谢谢您的评论。我的印象是SQLite将把整个数据库存储在一个巨大的平面文件中,因此建议只用于小型项目。这里我们讨论的是几百Gb,因此理想情况下,我需要能够“动态”选择所需文件并只打开这些文件的东西。这有意义吗?如果您有多余的磁盘空间(两倍或更多)将数据加载到Sqlite中,我会第一次尝试。如果您在Windows上,那么使用MSFT ODBC文本文件数据库驱动程序也是一个选项;如果您手头有Postgres(这很容易做到),那么文件FDW()是一个选项。在任何情况下,您都必须决定如何将文件映射到表(这里没有魔法,还有工作要做),但许多不同的环境都能够将文本文件映射为数据库文件(或导入它们)。