使用python浏览文本文件并操作文件的逻辑是什么

时间:2011-12-07 23:17:09

标签: scripting logic

我有一个包含两列的文本文件,一个是邮政编码,另一个是交叉引用ID。 请参阅下面的文件示例

"AB564SH","VAB00824"
"AB564RL","VAB00824"
"AB564SY","VAB00825"
"AB564RQ","VAB00825"
"AB564SH","VAB00826"
"AB564RR","VAB00826"

我想要做的是,如果第二列中的值(v值)与前一列相同,则将Postcode附加到行,进入以“/”分隔的第三列,所以本质上上面的例子应该像这样结束

"AB564SH","VAB00824","/AB564SH/"
"AB564RL","VAB00824","/AB564SH/AB564RL/"
"AB564SY","VAB00825","/AB564SY/"
"AB564RQ","VAB00825","/AB564SY"AB564RQ/"
"AB564SH","VAB00826","/AB564SH"
"AB564RR","VAB00826","/AB564SH/AB564RR/"

我是否正确地说要为每一行执行此操作,我需要

  1. 创建3个空列表,每个列表用于保存每列
  2. 将值添加到列表
  3. 如果是,则使用if语句检查V值是否与Previous V值相同,然后将邮政编码添加到第3个列表
  4. 然后将第3列附加到每行的末尾
  5. 我是在正确的轨道还是我没有意义?

3 个答案:

答案 0 :(得分:0)

第4步makes no sense。而且你不需要列表;只需一次处理一行文件。

答案 1 :(得分:0)

我认为它有点复杂,我会逐行处理。

  1. 阅读行,记住两个值
  2. 如果 第二个值与上一行相同,则将前一个值和当前值追加到当前行 else 仅追加当前值
  3. 将结果行写入新文件
  4. 重复所有行。

答案 2 :(得分:0)

我想说你只需要存储第二列的最后一个值,以及到目前为止连接的值的字符串(或列表)。对于每一行,如果第二列的值与存储的值相同,则将新字符串连接到列表并将其打印在第三列中。否则,清空列表,添加左侧值并打印出来。在这两种情况下,都要更新读取的最后一个第二列值的存储值。

这应该这样做,假设我正确理解了这个问题。