【发布时间】:2014-08-05 04:49:08
【问题描述】:
我正在使用 python 2.7 (OS-centos6)
我有一个文本文件。例如,它由以下几行组成:
0 4.064 16.786 7.016 0
1 5.520 14.733 5.719 0
2 5.904 17.898 5.222 0
3 3.113 18.613 18.453 0
4 3.629 16.760 5.118 0
:
:
:
398 6.369 14.623 6.624 0
399 5.761 18.084 7.212 0
400 2.436 17.021 10.641 0
最后一列最初包含全 0。它基本上是一面旗帜。 我想修改这个文本文件,即我想让最后一列条目为 1(即将标志值更改为 1)每当某些标准与特定行匹配。例如,行号 3,20,250,400 满足此标准。然后我想让这些特定行的标志值(最后一列条目)为 1,而不更改这些行上存在的其他值。 另外,我想循环执行此操作,因为我有很多标准。因此,我每次都必须转到文件顶部(即每个标准)并从上到下扫描它;每当满足条件时,将特定行的标志标记为 1。
重要提示:我正在使用相同的修改文件,然后只选择标志值不是 1 的那些行(用于进一步处理)。对于上述循环的每次迭代,我想阅读这个修改后的文件。这意味着,简而言之,我想为一个标准修改文件(即将标志设置为 1)-> 然后读取修改后的文件--> 进行处理--> 然后采用下一个标准--> 将标志设置为 1此标准--> 读取修改后的文件--> 依此类推。
我想补充一下: 要满足的标准每次都考虑两条不同的线。 例如如果第 3 行和第 398 行的第 2 列条目之间的差异小于 2.0,则将第 398 行的标志设置为 1。即差异 17.898 - 18.084 小于 2.0,因此第 398 行的标志将设置为 1
我们将不胜感激。
【问题讨论】:
-
我认为您需要数据库来执行此操作。
-
使用
for循环遍历文件的行,并将同一行写入带有修改标志的新(或同一文件)。您绝对不需要数据库,尽管它可能更有意义。
标签: python