我正在用 Python 构建一个排序脚本。过去没有那么多编程,我遇到了一些困难。我有很多 CSV 文件,我使用 glob 函数一一打开。然后我需要排序和打印符合某些条件的行。这是数据的简化版本:
Col1 Col2 ....Col 2n
Row 1 30 0.25
Row 2 57 0.11
Row 3 100 0.24
Row 4 55 0.26
Row 5 60 0.28
...................
Row n 11 0.36
检查所有行时,我的脚本工作正常,但我需要再包含一个条件。我只想按顺序打印一个接一个的行。我的意思是,如果我想打印 Col 1 > 50 的三行。因此,如果 Col_1 在第一行、第二行和第三行中 > 50,我将打印这些行。但是,如果第 1 行中的 Col_1>50 但第 2 行中 <50,我将不得不跳过这些行并从下一行开始。对不起,如果我让你有点困惑。所以,基本上我需要连续打印所有符合条件的行。在上面的示例中,条件 Col1>50 我需要连续打印满足该条件的三行。所以脚本应该打印第 2-4 行。
更多内容:理想情况下,我希望脚本接受用户关于应满足条件的行数的输入。因此,如果用户输入 4 - 一行中的四行应符合条件,则 10 - 那么所有 10 行都应符合条件。另外,我想输入要检查的行数。所以基本上:
- 输入要检查的周期数...
- 连续多少个周期应该符合标准...
稍后我将尝试在一些 GUI 界面中实现它,其中可以从下拉列表中选择周期数和条件。
这是我的脚本:
csvfiles = glob.glob('/stats/*.stat')
for filename in csvfiles:
reader = csv.reader(open(filename))
for row in reader:
col0, col3, col4, col5, col23, col24, col25 = float(row[0]), float(row[3]), float(row[4]), float(row[5]), float(row[23]), float(row[24]), float(row[25])
if col4 >= 9.00 and col5 > 1.00:
print(" %.0f " % col0,'|', "%.12f" % col4, "%.12f" % col5, "%.12f" % (col4/col5), "%.12f" % (100*col25), "%.12f" % col3, "%.12f" % col23, "%.12f" % col24)