python中的writeline问题

2024-04-26 04:14:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非常基本的问题。我正在学习一般使用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

如果有人能指出我不明白的是什么,我将不胜感激?

注册

贾尼


Tags: 文件csv脚本readlineopenwriteamp
3条回答

“if not line:”—不需要检查。

for line in ifile:
    ofile.write(line)
#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)

您应该根据python docs调用ofile.close()。

我不确定是否在没有显式关闭的情况下将写操作完全刷新到文件中。

另外,正如silenghost所提到的,检查输入文件中的空行。

正如stefanw在下面提到的,“如果。。在for-in中不需要break语句。

相关问题 更多 >

    热门问题