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

use*_*487 -1 python python-2.7

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

操作1(列)

  1. 打开文本文件
  2. 选择每个第n个数据点
  3. 将所选值保存到另一个文本或.csv文件

操作2(行)

  1. 打开文本文件
  2. 从第n行开始选择一个值范围(150)
  3. 将所选值保存到另一个文本或.csv文件

这一点是打印矩阵列然后是行.我是一个新手python用户,并使用spyder来运行其他脚本.如果您愿意为我编写脚本,请描述我需要替换的内容以获得所需的结果.我查看了其他类似的帖子,但找不到足够相似的帖子,我可以用我有限的知识编辑我的需求.

非常感谢您的期待以及您可以给予的任何帮助.

Mar*_*ers 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
Run Code Online (Sandbox Code Playgroud)

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

for line in itertools.islice(f, 10, 20):
    # do something with this 10th line
Run Code Online (Sandbox Code Playgroud)

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

next(itertools.islice(f, 42, 42), None)  # skip 42 lines, don't read more
Run Code Online (Sandbox Code Playgroud)

使用该itertools,并快速浏览Python教程,您可以轻松地找出脚本的其余部分.