Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python重写,而不是将数据追加到.csv文件中_Python_Csv - Fatal编程技术网

Python重写,而不是将数据追加到.csv文件中

Python重写,而不是将数据追加到.csv文件中,python,csv,Python,Csv,我处理了50个文件,然后将每个文件的输出写入.csv文件,但它只将最后一个文件输出到.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 f

我处理了50个文件,然后将每个文件的输出写入.csv文件,但它只将最后一个文件输出到.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文件中吗。

如果使用“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()
导入全局
从itertools导入islice
导入行缓存
路径='*.rbd'
#path='original-adder.rbd'
文件=已排序(glob.glob(路径))
对于文件中的文件名:
德鲁线=101
将open(filename,'r')作为f:
i=1

而我只尝试使用“a”而不是a+,并且不输出。close()使用
csv
模块创建
csv
文件。另外,
out.close()
也不是必需的;
with
语句将隐式调用它。我已经尝试过了,但没有成功。创建.csv文件的csv模块是什么,请解释一下@chepnerIt的a。@hassan original是否拥有所有数据,或者这是您在处理完每个文件后为其运行的代码?original具有为每次运行计算的数据。它使用
file=open('output.csv',a+')为原始行中的行运行@Arnab Sharmatry的每个文件:为行中的列运行:file.write(str(col))
我已经尝试过了。不知道是什么问题。可能每次输入文件都会更改吗?
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 bits@0',57411950,count0_nonbram,count0_nonbram-57411950],['Total number of non-BRAM bits@1',3110418,count1_nonbram,count1_nonbram-3110418]]