我正在尝试编写一个python脚本
像这样记录数据
6xxxxxxxx
7xxxxxxxx
6xxxxxxxx
7xxxxxxxx
7xxxxxxxx
6xxxxxxxx
6xxxxxxxx
6xxxxxxxx
7xxxxxxxx
7xxxxxxxx
7xxxxxxxx
并执行以下逻辑
^{pr2}$所以应该打印成这样:
6xxxxxx 7xxxxxxxx
6xxxxxx 7xxxxxxxx 7xxxxxxx 7xxxxxxx
6xxxxxx
6xxxxxx
etc..
这是我的代码:
han1 = open("file","r")
newline = ""
for i in han1:
if i[0] == "6" and newline == "":
newline = i
elif i[0] == "7":
newline = newline + i
elif i[0] == "6" and newline != "":
print newline
newline = ""
newline = i
han1.close()
当我运行脚本时,输出看起来没有变化。你觉得我哪里错了。是因为newline变量不会在循环的迭代之间存储值吗?如有任何指导,我们将不胜感激。在
如果文件不是以GB为单位
if语句中没有任何分支以
newline
设置为“”结束。因此,第一个分支永远不会求值,因为newline
永远不是“”,除了第一个情况。在您可以通过简单地为以6开头的记录追加一个换行符来简化这一过程,如果没有,就不追加一个
好的,这将首先在文件中创建一个空行,并且可能不会以新行结束文件。不过,这很容易解决。在
或者是一个没有这个问题的解决方案,而且更接近您的解决方案:
^{pr2}$但也有点长。在
也就是说,我认为你的主要问题是你没有删除记录,所以你保留了换行。在
相关问题 更多 >
编程相关推荐