使用“for”循环在Python中写入CSV文件

2024-10-01 07:22:21 发布

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

我目前正在尝试用python写一个CSV文件,但是我只想每60次就打印一次CurrentInv。例如

outfile = open("Pension.csv", 'w')
for k in range(1,Iterations+1):
    outfile.write(str( str(k) + ','))
    outfile.write(str(CurrentInv[k][0])+',')
    outfile.write(str(CurrentInv[k][60])+',')
    outfile.write(str(CurrentInv[k][120])+',')
    outfile.write(str(CurrentInv[k][180])+',')
    outfile.write(str(CurrentInv[k][240])+',')
    outfile.write(str(CurrentInv[k][300])+',')
    outfile.write(str(CurrentInv[k][360])+',')
    outfile.write(str('\n'))
outfile.close()

但我想在循环中得到这个。我试过了

 outfile = open("Pension5.csv", 'w')
 for k in range(1,Iterations+1):
     outfile.write(str( str(k) + ','))
     for i in range(0,Months+1):
        outfile.write(str(CurrentInv[k][i])+',')
        i=i+60
     outfile.write(str('\n'))
 outfile.close()`

但是,这仍然打印CurrentInv从0到个月的所有值,而不是每60次迭代一次。任何帮助都将不胜感激!你知道吗


Tags: 文件csvinforcloserangeopenoutfile
1条回答
网友
1楼 · 发布于 2024-10-01 07:22:21

请尝试以下操作:

with open("Pension5.csv", 'w') as outfile:
    for k in range(1, Iterations+1):
        outfile.write(str(str(k) + ','))
        for i in range(0, Months+1, 60):
            outfile.write(str(CurrentInv[k][i]) + ',')
        outfile.write(str('\n'))

它为范围指定一个60的步长,这样每次迭代都会加上60而不是1。在本例中,月份应该是360。如果希望月数为6而不是360,请检查以下各项:

with open("Pension5.csv", 'w') as outfile:
    for k in range(1, Iterations+1):
        outfile.write(str(str(k) + ','))
        for i in range(0, Months+1):
            outfile.write(str(CurrentInv[k][i*60]) + ',')
        outfile.write(str('\n'))

相关问题 更多 >