每次我一次读一行时,My For循环会跳过第一行。 当我只需要将整个文件读入内存时,问题不会发生,但大多数情况下我需要一次读取一行。
这是问题发生的一个例子。 此循环只是重新排序列表中的元素。 我省略了我打开和关闭的行和读取&写文件(我做的笨重的方式)。它的所有逗号分隔文本数据。
lineString=fileItemR.readline()
for lineString in fileItemR:
lineList = lineString.split(",")
newList = (lineList[1],lineList[0],lineList[2:99])
lineItem = str(newList)
formatString = lineItem.replace("('","").replace("', '",",").replace("', ",",").replace("['","").replace("\\n","\n").replace("'])","")
fileItemW.write(formatString)
答案 0 :(得分:5)
您的问题是您从文件的第一行读取并且不对其执行任何操作
lineString=fileItemR.readline()
删除它,你应该没问题
您还可以更简单地实现这一目标:
for lineString in fileItemR:
lineList = lineString.split(",")
lineList[0], lineList[1] = lineList[1], lineList[0]
fileItemW.write(",".join(lineList[:99])) #Don't use [:99] if there's only 100 items in the line, and this could change in the future. If you're discarding items past the 100th then this is fine.
答案 1 :(得分:4)
这是第一个readline()
(你在循环之前调用的那个)吃掉你的第一行。