0

我有一个动作捕捉文件,其中包含一些信息,如下所示: 在此处输入图像描述

我需要文件看起来像这样: 在此处输入图像描述

不同之处在于我不需要任何顶部,只需从第 31 行 b 列开始。在第 31 行,有 LFHD 之类的关键字,下面是 xyz 位置。我的代码通过读取 csv 并为每一行获取字典来使用修改后的版本:

filename = args
jointCSVs=[]
if filename != None:
    print "Trying to get file"
    joint_file = open(str(filename),"rb")
    reader = csv.DictReader(joint_file)
    print "Got File"
    for data in reader:
        jointCSVs.append(data)
    return jointCSVs    

我找不到任何关于如何用 python 和 csv 做更复杂事情的好信息,特别是因为我的代码,只有第一个块被读入,当有空格时它结束。我什至尝试了我找到的这段代码,但它不会打开第一个 csv 文件,它只是崩溃: pyqt - populating QTableWidget with csv data

手动修改需要很长时间,而且我有很多这些文件。稍后我计划制作更多的 gui 东西,可以编辑文件并修改它们或选择对许多处理动作捕捉数据的人有用的部分。我找不到任何用于复杂数据操作的库或用于指定要从文件中删除的行和列的简单方法。这是否存在或有人可以解释如何做到这一点?

谢谢!

4

1 回答 1

1

在处理像你这样的数据源时,我经常使用Numpy 。有一些强大的函数可以将文件数据读入 Numpy 数组。一旦进入 numpy 数组,行和列就很容易操作。例如,您可以切掉前 30 行,操作标题并使用 python 脚本再次写回文件。举个简单的例子:

import numpy as np

data = np.loadtxt("input.csv", skiprows=32)

# play with data, remove 1st column and write back to disk...
data = data[:, 1:]

np.savetxt("output.csv", data, header='LFHDX,LFHDT')

计算出您的新标题并将其传递到 savetxt。

于 2013-06-12T11:15:43.267 回答