-4

我想做以下事情:

  1. 将多个 ascii 文件 (*.txt) 读入内存。我需要跳过每个文件的前 4 行。这些文件中的整数值是非结构化的,一行一行地连续写入。每行的值的数量可以变化,并不重要。
  2. 读取内存中的所有数据后,我需要将其写入一个文件,每行一个值,即一列。在写值之前,我需要写 3 行标题。

我需要将此作为脚本,我可以从终端(Bash)调用它。我感谢您的帮助!

4

1 回答 1

0

你的问题很模糊,但我想出了这个:

这些是我的假设:

  1. 文本文件每一行中的“值”由空格分隔
  2. 输出文件将按照传入文件的顺序包含值。因此,如果函数的参数是f1、和f2,则 中的值首先出现在 中,中的值出现在 中,依此类推f3outfilepathf1outfilepathf2outfilepath

这是一个在这些假设下执行您想要的功能的函数:

def readwrite(infilepaths, outfilepath):
    with open(outfilepath, 'w') as outfile:
        outfile.write(threeLinesOfHeader + '\n')
        for infilepath in infilepaths:
            with open(infilepath) as infile:
                skipLines = 4
                for _ in range(skipLines):
                    infile.readline()
                values = itertools.chain.from_iterable(line.strip().split() for line in infile)
                outfile.write('\n'.join(values) + '\n')
    print 'done'

希望这可以帮助

于 2012-11-07T04:08:05.790 回答