2017-05-27 63 views
0

我有50個文件,我處理,然後將每個文件的輸出寫入.csv文件,但它只給最後一個文件輸出到.csv文件文件Python重寫,而不是附加在.csv文件中的數據

with open('output.csv','a+') as out: 
    out.write(filename) 
    out.write('\n') 
    out.write('\n') 
    out.write(';''Golden readback from vivado before fault-injection') 
    out.write(';''Readback from vivado after the injection') 
    out.write(';''Real-Delta') 
    out.write('\n') 
# original is my data. 
    for row in original: 
    for col in row:  
     out.write('{0};'.format(col)) 
    out.write('\n') 
    out.write('\n') 
out.close() 

任何想法如何將所有文件輸出到相同的.csv文件。

+1

嘗試只有 「一個」,而不是一個+,不out.close() – Marco

+1

使用'csv'模塊來創建一個'csv'文件。另外,'out.close()'不是必須的。 'with'語句會隱含地調用它。 – chepner

+0

我已經試過了,但沒有運氣。 – hassan

回答

1

您正在使用'a +'模式在您的代碼中追加結果,請嘗試'w +',而應該使用它。

with open('output.csv','w+') as out: 
    out.write(filename) 
    out.write('\n') 
    out.write('\n') 
    out.write(';''Golden readback from vivado before fault-injection') 
    out.write(';''Readback from vivado after the injection') 
    out.write(';''Real-Delta') 
    out.write('\n') 
# original is my data. 
    for row in original: 
    for col in row:  
     out.write('{0};'.format(col)) 
    out.write('\n') 
    out.write('\n') 
out.close() 
+0

不,它沒有工作。 – hassan

+0

@hassan原始數據是否包含所有數據,或者是您在處理完每個文件後運行的代碼? – StarLord

+0

原始數據爲每次運行計算。它爲每個文件運行@Arnab Sharma – hassan

0
import glob 
from itertools import islice 
import linecache 

path = '*.rbd' 
#path='original-adder.rbd' 
files=sorted(glob.glob(path)) 

for filename in files: 

del_lines = 101 
with open(filename,'r') as f: 

    i=1 
    while i <= del_lines: 
    line1 = f.readline() 
    i+=1 

    i=0  
    count0_bram = 0 
    count1_bram = 0 
    count0_nonbram = 0 
    count1_nonbram = 0 
    totalbits = 0 
    totalbitsones = 0 
    totalbitszeros = 0 

    NON_BRAM_bits_zero_original=57411950 
    NON_BRAM_bits_ones_original=3110418 

    difference_zero_non_BRAM = 0 
    difference_ones_non_BRAM = 0 


# COUNT NON BRAM 

    for i in range(102,1891426): 
    line=linecache.getline(filename,i) 

    count_zeros=line.count('0') 
    count0_nonbram=count0_nonbram+count_zeros 

    count_ones=line.count('1') 
    count1_nonbram=count1_nonbram+count_ones 

    i=0 
# to count BRAM 

#lines=islice(fin,1891427,1903714) 
    for i in xrange(1891427,2432181): 
    line=linecache.getline(filename,i) 


    #line=line.strip() 
    count_zeros=line.count('0') 
    count0_bram=count0_bram+count_zeros 

    count_ones=line.count('1') 
    count1_bram=count1_bram+count_ones 
    i=0 

    totalbits=count0_bram+count1_bram+count0_nonbram+count1_nonbram 
    totalbitsones=count1_bram+count1_nonbram 
    totalbitszeros=count0_bram+count0_nonbram 
    difference_zero_non_BRAM = count0_nonbram- NON_BRAM_bits_zero_original # new -old 
    difference_ones_non_BRAM = count1_nonbram-NON_BRAM_bits_ones_original # new - old 


    print filename 
    print "-------------------------------------------------" 
    print "Total Bits:%d"%totalbits 
    print "Number of totalbits-zeros: %d." %totalbitszeros 
    print "Number of totalbits-ones: %d." %totalbitsones 
    print "Number of BRAM-Zeros: %d." %count0_bram 
    print "Number of BRAM-ones: %d." %count1_bram 
    print "Number of NON_BRAM-Zeros: %d." %count0_nonbram 
    print "Number of NON_BRAM-Ones: %d." %count1_nonbram 
    print "difference_zero_non_BRAM:%d."%difference_zero_non_BRAM 
    print "difference_ones_non_BRAM:%d."%difference_ones_non_BRAM 
    print "--------------------------------------------------" 



original= [['Total Bits', 77826496,totalbits,totalbits-77826496],['Total number of bits @0',74651972,totalbitszeros,totalbitszeros-74651972],['Total number of bits @1',3174524,totalbitsones,totalbitsones-3174524],['Totalnumber of BRAM bits-zero',17240022,count0_bram,count0_bram-17240022],['Total number of BRAM bits-ones',64106,count1_bram,count1_bram-64106],['Total number of non-BRAM [email protected]',57411950,count0_nonbram,count0_nonbram-57411950],['Total number of non-BRAM [email protected]',3110418,count1_nonbram,count1_nonbram-3110418]] 
相關問題