python - 在 Python 中拆分数据文件,第 2 轮

标签 python structured-data

所以我最近找到了解决这个问题的方法here 我想在其中获取数据文件的两列并将它们放入两个数组中 我现在有了这段代码,可以很好地完成这项工作。

Xvals=[]; Yvals=[]
i = open('BGBiasRE_IM3_wCSrescaled.txt','r')

lines = [line.split() for line in i if line[:4] not in ('time', 'Step')]
Xvals, Yvals = zip(*lines)

V = [0, 0.004, 0, 0.0004]

pylab.plot(Xvals, Yvals, marker='o')
pylab.axis(V)
pylab.xlabel('Time (ms)')
pylab.ylabel('Current (A)')
pylab.title('Title')
pylab.show()

但我现在意识到我搞砸了这个问题。我有一个如下所示的数据文件,

    time    I(R_stkb)
Step Information: Temp=0  (Run: 1/11)

0.000000000000000e+000  0.000000e+000

9.999999960041972e-012  8.924141e-012

1.999999992008394e-011  9.623148e-012

Step Information: Temp=10  (Run: 2/11)

0.000000000000000e+000  0.000000e+000

9.999999960041972e-012  4.924141e-012

1.999999992008394e-011  8.623148e-012

(注意:每行数据之间没有空行,两个数据值之间有一个Tab)

上面的代码将所有步骤信息附加到一个数组中,所以当我想要两个不同的数组用于不同的步骤时,我得到了两个大的长数组,这样我可以稍后分别绘制它们各自的数组。我还必须获取步骤名称,在本例中为 Temp=10 并附加它/命名数组以反射(reflect)步骤信息的每个 block 。例如。我想以这样的数组结束

Temp0_Xvals = [ 0.000000000000000e+000, 9.999999960041972e-012, 1.999999992008394e-011]
Temp0_Yvals = [ 0.000000e+000, 8.924141e-012, 9.623148e-012]

Temp10_Xvals = [...]
Temp10_Yvals = [...] etc etc

显然这使问题变得更加复杂,我不知道从哪里开始。

最佳答案

我会按照这些思路做一些事情:

i = open('BGBiasRE_IM3_wCSrescaled.txt', 'r')

Xnames, Ynames = [], []

count = 0
for line in i:
    if count > 0:
        line_tmp = line.split()
        if line_tmp[0] == 'Step':
            step = (line_tmp[2].split('='))[1]
            varnameX = 'Temp' + str(step) +'_Xvals'
            varnameY = 'Temp' + str(step) +'_Yvals'
            globals()[varnameX] = []
            globals()[varnameY] = []
            Xnames.append(varnameX)
            Ynames.append(varnameY)
        else:
            globals()[varnameX].append(float(line_tmp[0]))
            globals()[varnameY].append(float(line_tmp[1]))
    count += 1
i.close()

for name in Xnames:
    print name + ' = ' + str(eval(name))

for name in Ynames:
    print name + ' = ' + str(eval(name))

这肯定不是最有效的解决方案,但它适用于您的特定问题

关于python - 在 Python 中拆分数据文件,第 2 轮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9460581/

相关文章:

python - Python 中的 __builtin__ 模块

python - 字典的嵌套列表

python - 将特定行从 CSV 文件迭代复制到新文件

python - 使用 Selenium Python 获取 Iframe Src 内容

seo - Local Business 模式对您拥有所有权的企业是否严格?

c++ - Boost::Python: 没有找到 C++ 类型的转换器:boost::python::detail::kwds_proxy

html - 营业时间语义html的结构化数据

google-search-console - 错误 : "The property offers is not recognized by Google for an object of type Offer" in Structured data

schema.org - 为什么 Google 测试工具使用 "id"属性来生成微数据项的 URL?

reactjs - React JSON-LD 架构中的脚本标签