Python方式打开文本文件,选择每个第n个值,并保存到文本文件中。

时间:2012-12-15 15:44:28

标签: python python-2.7

我有一个包含57,600,000,000行值的文本文件。这些值位于文本文件的单个列中。它们代表重复2400次的150(列)×160(行)矩阵。我希望完成2个不同的操作,每个操作有3个目标。

操作1(列)

  1. 打开文本文件
  2. 选择每个第n个数据点
  3. 将所选值保存到其他文本或.csv文件
  4. 操作2(行)

    1. 打开文本文件
    2. 从第n行开始选择一系列值(150)
    3. 将所选值保存到其他文本或.csv文件
    4. 这一点是打印矩阵列然后是行。我是一个新手python用户,并使用spyder来运行其他脚本。如果您愿意为我编写脚本,请描述我需要替换的内容以获得所需的结果。我查看了其他类似的帖子,但找不到足够相似的帖子,我可以用我有限的知识编辑我的需求。

      非常感谢您的期待和任何帮助。

1 个答案:

答案 0 :(得分:10)

Python中的文件是迭代器,这意味着它们可以循环,或者应用迭代操作。

例如,要获得每5行,将是:

import itertools

with open(filename, 'r') as f:
    fifthlines = itertools.islice(f, 0, None, 5)
    for line in fifthlines:
        # do something with line

您也可以使用islice()跳过线条;这里我们跳过10行,然后读10:

for line in itertools.islice(f, 10, 20):
    # do something with this 10th line

你可以吞下一系列;因为跳过,然后读取0行引发StopIteration信号,我们通过使用next()吞下它并传入默认值来代替:

next(itertools.islice(f, 42, 42), None)  # skip 42 lines, don't read more

使用itertools library并快速浏览Python tutorial,您可以轻松地找出脚本的其余部分。