gpt4 book ai didi

python - 读取平面文件作为转置,python

转载 作者:行者123 更新时间:2023-11-28 19:51:22 25 4
gpt4 key购买 nike

我对以尽可能高效的方式在 Python 中读取固定宽度的文本文件很感兴趣。具体来说,大多数时候我对平面文件中的一列或多列感兴趣,而不是整个记录。

我觉得一次读取文件一行并在将整行读入内存后提取所需的列效率很低。我想我宁愿选择只阅读所需的列,从上到下,从左到右(而不是从左到右,从上到下阅读)。

这样的事情是否可取,如果是,是否可能?

最佳答案

文件被布置为(一维)位序列。 “线条”只是我们添加的一种便利,目的是让人们更容易阅读。因此,一般来说,普通文件不可能满足您的要求。要做到这一点,您需要某种方法来找到记录的起始位置。最常见的两种方式是:

  • 搜索换行符(换句话说,读取整个文件)。
  • 使用特殊间距的布局,以便每条记录都使用固定的布局。这样,您就可以使用低级文件操作(如 seek)直接转到您需要去的地方。这样可以避免读取整个文件,但手动操作会很痛苦。

除非它成为一个问题,否则我不会太担心文件读取性能。是的,您可以对文件进行内存映射,但您的操作系统可能已经为您缓存了。是的,您可以使用数据库格式(例如,通过 sqlalchemy 的 sqlite3 文件格式),但这可能不值得这么麻烦。

关于“固定宽度”的附注:这到底是什么意思?如果你的意思是“每一列总是从相对于记录开始的相同偏移量开始”那么你绝对可以使用 Python's seek跳过您不感兴趣的过去数据。

关于python - 读取平面文件作为转置,python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5129840/

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