Python中的writeline问题
我遇到了一个很基础的问题。我正在学习Python和脚本编程的入门知识,所以这让我感到困惑:
我想要读取和写入新文件中的行:
ifile=open("C:\Python24\OtsakkeillaSPSS.csv", "r")
ofile = open("C:\Python24\OtsakkeillaSPSSout.csv", "w")
#read first line with headers
line1 = ifile.readline()
print line1
#read following lines which contain data & write it to ofile
for line in ifile:
if not line:
break
ofile.write(line)
如果我把这些内容打印到屏幕上,所有的行都显示得很好:
0,26100,568,8636
0,11130,555,**3570
0,57100,77,2405**
0,60120,116,1193
0,33540,166,5007
0,95420,318,2310
0,20320,560,7607
0,4300,692,3969
0,65610,341,2073
0,1720,0,0
0,78850,228,1515
0,78870,118,1222
但是如果我把它写入文件,我发现少了大约15行:
0,6100,948,8332
0,26100,568,8636
0,11130,555
如果有人能告诉我我哪里理解错了,我会非常感激。
祝好,
贾尼
5 个回答
3
“if not line:”这个检查其实是多余的。
for line in ifile:
ofile.write(line)
4
#read following lines which contain data & write it to ofile
for line in ifile:
if not line:
continue #break stops the loop, you should use continue
ofile.write(line)
当然可以!请把你想要翻译的内容发给我,我会帮你把它变得更简单易懂。
4
你应该根据Python文档来调用ofile.close()。
我不太确定在没有明确关闭文件的情况下,写入的数据是否会完全保存到文件里。
另外,正如SilentGhost提到的,检查一下你的输入文件中是否有空行。
还有,正如下面的stefanw提到的,在for循环中,"if.. break"这个语句其实是没必要的。