在python 3.6中将多行写入csv文件时遇到问题

时间:2017-07-08 01:58:38

标签: python csv

我的要求是读取目录中的所有文件,获取文件的长度和每个文件的字数,并将其作为一行存储在CSV文件中。

以下是我的Python代码。       #Iterating列表目录

 for filename in os.listdir(passedArgument1):
  #Opening each file in the directory
   with open(passedArgument1+filename,"r",encoding="ISO-8859-1") as f:
    actualWordCount = 0
  # Getting the file Size
    fileSize=os.path.getsize(passedArgument1+filename)
    for line in f:
  # Getting the word count
      actualWordCount+=writeToExcelFile(line)
  # Writing to a file 
      with open('output.csv', 'w') as csvfile:
       spamwriter = csv.writer(csvfile, delimiter=' ', quotechar='|',   quoting=csv.QUOTE_MINIMAL)
       spamwriter.writerow([actualWordCount,fileSize])

当我写入CSV文件时,它只写入一个最后一个文件的记录。我已经检查过writerows方法,但不确定它是如何工作的。在Python 3.x中实现我的要求时,我们非常感谢。

2 个答案:

答案 0 :(得分:2)

您正在为每一行输出重新打开输出文件。只需打开一次。

答案 1 :(得分:1)

试试这个?

csvfile = open('output.csv', 'w')
# do your loop here and write/append to csvfile
csvfile.close()