Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scripting 使用python遍历文本文件并操作该文件的逻辑是什么_Scripting_Logic - Fatal编程技术网

Scripting 使用python遍历文本文件并操作该文件的逻辑是什么

Scripting 使用python遍历文本文件并操作该文件的逻辑是什么,scripting,logic,Scripting,Logic,我有一个文本文件,有两列,一列是邮政编码,另一列是交叉引用ID。 请参阅下面的文件示例 "AB564SH","VAB00824" "AB564RL","VAB00824" "AB564SY","VAB00825" "AB564RQ","VAB00825" "AB564SH","VAB00826" "AB564RR","VAB00826" 我想做的是,如果第二列中的值(v值)与前一列中的值相同,则将邮政编码附加到行中的第三列中,并用“/”分隔,因此本质上上述示例应该是这样结束的 "AB564SH

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

"AB564SH","VAB00824"
"AB564RL","VAB00824"
"AB564SY","VAB00825"
"AB564RQ","VAB00825"
"AB564SH","VAB00826"
"AB564RR","VAB00826"
我想做的是,如果第二列中的值(v值)与前一列中的值相同,则将邮政编码附加到行中的第三列中,并用“/”分隔,因此本质上上述示例应该是这样结束的

"AB564SH","VAB00824","/AB564SH/"
"AB564RL","VAB00824","/AB564SH/AB564RL/"
"AB564SY","VAB00825","/AB564SY/"
"AB564RQ","VAB00825","/AB564SY"AB564RQ/"
"AB564SH","VAB00826","/AB564SH"
"AB564RR","VAB00826","/AB564SH/AB564RR/"
我说的对吗?要对每一行都这样做,我需要

  • 创建3个空列表,每个列表用于容纳每一列
  • 将值添加到列表中
  • 使用if语句检查V值是否与前一个V值相同如果是,则将邮政编码添加到第三个列表中
  • 然后将第三列附加到每行的末尾

  • 我是在正确的轨道上还是没有意义?

    步骤4。你不需要一份清单;一次只处理一行文件。

    我觉得有点复杂,我会逐行处理

  • 读这一行,记住这两个值
  • 如果第二个值与前一行相同,则将前一个值和当前值追加到当前行否则仅追加当前值
  • 将结果行写入新文件
  • 对所有行重复此操作

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


    假设我正确理解了这个问题,这个问题就可以了。

    你不觉得这个问题更合适吗?它不需要任何地理信息系统专业知识来理解或回答。甚至一个Excel论坛。。!请尝试“=if(上面的cell=cell_),连接…”摆脱arcgis选项卡,因为这与arcgis完全无关,我也不确定python标记也应该在这里,因为这是一个简单的脚本问题,与gis、python或任何东西都无关;这是一个简单的逻辑问题。。。还有,不要说脏话,或者别的什么,但是如果你需要问这样的问题,这是你的领域吗?