我正在尝试重新格式化一些数据并将其保存到 python 中的输出文件中。我 .strip() 原始的每一行并将其附加到列表中。我创建了第二个列表,其中包含我需要添加到原始数据的值,(修改包含原始数据)并在我需要从原始数据列表。输出需要在输出的每条记录中插入仅显示一次的一些信息,因此它不是 1:1 输出(原始行到输出行),我相信这就是我遇到的问题。这是我的代码示例...
原始数据:
Client
#ofrecords(as an integer)
Line1ofrecord1
Line2ofrecord1
....
Line1ofrecord2
Line2ofrecord2
....
End
代码:
def shouldbesimple(originalfile):
inputfile = open(originalfile, "r")
outputfile = open('finaloutput.txt', "w")
nowhitespace = originalfile.strip()
Client = nowhitespace.pop(0)
Counter = nowhitespace.pop(0) (each record has exactly the same number of lines)
#at this point only record information remains in list..
Header = "stuff at beginning of each record in output"
Insertclient = "NEEDED {1} CHANGES"
Line1 = "THINGS I {0} MUST ADD"
Footer = "stuff at end of each record in output"
thingstoadd = [Header, Line1, Insertclient, Footer]
while counter > 0 :
writetofile = ""
for element in thingstoadd:
writetofile = element.format(nowhitespace.pop(0), Client)
outputfile.write(writetofile + "\n")
counter = counter - 1
inputfile.close()
outputfile.close()
一切都按预期工作,直到我开始迭代 thingstoadd ..
数据未按预期排列,我收到“从空列表中弹出”错误。打印 writetofile 显示 pythonnowhitespace.pop(0)
在每次迭代时都在 format 语句中运行操作,而不仅仅是{0}
在相关元素中出现时。
是否有更合适的方法将原始信息传递到字符串数据中,或者防止.pop()
操作发生在每个元素上?