gpt4 book ai didi

python - 大文本文件到小 Excel 文件

转载 作者:行者123 更新时间:2023-11-30 23:34:17 25 4
gpt4 key购买 nike

我有一个巨大的文本文件(4 GB),其中每“行”的语法如下:[数字][数字]_[数字][文本]
例如

123 12_14 Text 1
1234 13_456 Text 2
33 12_12 Text 3
24 678_10 Text 4

我的目的是将这些数据保存为 Excel 文件,其中文本文件中的每一“行”
是 Excel 文件中的一行。根据过去的例子:

[A1] 123
[B1] 12_14
[C1] Text 1
[A2] 1234
[B2] 13_456
[C2] Text 2
[A3] 33
[B3] 12_12
[C3] Text 3
[A4] 24
[B4] 678_10
[C4] Text 4

我的计划是按照 here 的建议迭代文本“lines”,分隔“lines”,
并保存到Excel文件的单元格中。

由于文本大小问题,我想创建许多小的Excel文件,它们加在一起将等于文本文件。

然后我需要分析小Excel文件,主要找到[Text]单元格中提到的术语,并计算与[number]<相关的出现次数 单元格(代表帖子和帖子 ID)。

最后,我需要将所有这些数据汇总到一个 Excel 文件中。

我正在考虑创建和分析 Excel 文件的最佳方法。
如前所述,here 主要库是 xlrdcsv

最佳答案

“我很确定除了小 Excel 文件之外我没有其他选择,但另一种方法是什么?”

巨大的文本文件是一种数据库,尽管不方便。一堆小 Excel 文件是同一数据库的另一种更不方便的表示形式。我假设您想要创建一堆小文件,因为 Excel 对它可以包含的行数有上限(65'000 或 1'000'000,具体取决于 Excel 的版本)。然而,就像been noted一样, Excel 文件是真正可怕的数据库存储。

由于您已经在使用 Python,因此请使用模块 sqlite3 ,它已经内置了,它是一个真正的数据库,它可以处理超过一百万行。而且速度很快。

但我想了解一下您建议的数据规模的速度有多快,因此我创建了一个 30M 行的数据库,其复杂度与您的数据集大致相同。架构很简单:

create table words
(id integer primary key autoincrement not null,
first text, second text, third text);

并用从/usr/dict/words 中抽取的随机三元组填充它(我有一个用于生成这样的测试数据的模块,它使条目看起来像

sqlite> select * from words limit 5;
1|salvation|prorates|bird
2|fore|embellishment|empathized
3|scalier|trinity|graze
4|exes|archways|interrelationships
5|voguish|collating|partying

但是对我知道即将结束的行的简单查询花费的时间比我希望的要长:

select * from words where first == "dole" and second == "licked";
29599672|dole|licked|hates

在一个相当普通的 3 年旧台式机上花了大约 7 秒,所以我添加了几个索引

create index first on words (first);
create index second on words (second);

这确实使数据库文件的大小从 1.1GB 增加了一倍到 2.3GB,但将简单查询时间降低到相当合理的 0.006 秒。我认为您使用 Excel 的效果不会那么好。

因此,您必须解析您的数据,然后将其放入真正的数据库中。

关于python - 大文本文件到小 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18231734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com