简体   繁体   中英

Writing to a CSV file in Python using a 'for' loop

I'm currently trying to write to a CSV file in python, however I only want to print 'CurrentInv' every 60 iterations. For example

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()

But I would like to obtain this in a loop. I have tried

 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()`

However, this still prints all values for CurrentInv from 0 to Months instead of every 60 iterations. Any help would be appreciated!

Try the following:

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'))

It specifies a step of 60 for the range so that each iteration it adds 60 instead of 1. Months should be 360 in the example case. If you want Months to be 6 instead of 360 check the following:

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'))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM