linux mdb文件,需要帮助在Linux机器上的Python中对已处理的mdb文件进行排序

我正在尝试从.mdb文件中提取表,然后过滤该表并将结果吐出到短的.csv文件中。到目前为止,我已经能够提取所需的表并将其内容保存到.CSV中。但是我不知道如何对数据进行排序并提取所需的必要行。我想我可以保存整个.csv,然后重新打开它,但是由于我需要处理大约2000个mdb文件,所以它将占用大量空间。我只想提取某些行。

Cycle Test_Time  Current    Voltage

1     7.80E-002 0.00E+000   1.21E-001

1     3.01E+001 0.00E+000   1.19E-001

1     6.02E+001 0.00E+000   1.17E-001

2     9.02E+001 0.00E+000   1.14E-001

2     1.20E+002 0.00E+000   1.11E-001

2     1.50E+002 0.00E+000   1.08E-001

2     1.80E+002 0.00E+000   1.05E-001

2     2.10E+002 0.00E+000   1.02E-001

3     2.40E+002 0.00E+000   9.93E-002

3     2.70E+002 0.00E+000   9.66E-002

3     3.00E+002 0.00E+000   9.38E-002

3     3.10E+002 4.00E-001   1.26E+000

例如,在上表中,我想做以下事情:提取每个周期的最后一行,或更高级的是,按时间对周期进行排序,并提取具有最新时间的周期的行。如您所见,由于我们的测试机故障,最后一行并非总是具有最新时间,但通常会如此。但是数字越大,时间越晚。

提取最后五个周期的所有行。

提取循环4到循环30中的所有行。

这是我的代码:

import sys, subprocess, glob

mdbfiles = glob.glob('*.res')

for DATABASE in mdbfiles:

subprocess.call(["mdb-schema", DATABASE, "mysql"])

table_names = subprocess.Popen(["mdb-tables", "-1", DATABASE],

stdout=subprocess.PIPE).communicate()[0]

tables = table_names.splitlines()

sys.stdout.flush()

a=str('Channel_Normal_Table')

for table in tables:

if table != '' and table==a:

filename = DATABASE.replace(".res","") + ".csv"

file = open(filename, 'w')

print("Dumping " + table)

contents = subprocess.Popen(["mdb-export", DATABASE, table],

stdout=subprocess.PIPE).communicate()[0]

# I NEED TO PUT SOMETHING HERE TO SORT AND EXTRACT THE DATA I NEED

file.write(contents)

file.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值