这是我的代码:
import csv
with open(outputfile, 'a') as csvfile:
filewrite = csv.writer(csvfile, delimiter=',', quoting=csv.QUOTE_MINIMAL)
filewrite.writerow([hostname])
if (CiscoSyslog == 0):
filewrite.writerow(['Syslog'])
if (CiscoSNMP == 0):
filewrite.writerow(['SNMP'])
目前,它会在找到新行时输出数据。基本上,最终目标是生成一个包含缺少Syslog和/或SNMP配置的主机名的CSV文件。我想让它看起来最终的方式是,例如:
router1,Syslog
router2,SNMP
router3,Syslog,SNMP
正如你所看到的,在乞讨时我打开了文件并打印出主机名,然后,我目前的目标是:我想保持行#34;打开",所以我可以继续追加更多数据作为" if"声明继续寻找匹配。最终它会产生类似于我上面所示的例子。
我尝试过在这个论坛和其他论坛上进行研究,但我一直在寻找如何在CSV中追加新行的示例,或者我一直在寻找随机人员的评论,以及CSV库如何不支持添加新列。
非常感谢一些帮助。谢谢!
答案 0 :(得分:0)
在尝试编写行之前,您将完全构建行。试试这个:
import csv
with open(outputfile, 'a') as csvfile:
filewrite = csv.writer(csvfile, delimiter=',', quoting=csv.QUOTE_MINIMAL)
row = [hostname]
if (CiscoSyslog == 0):
row.append('Syslog')
if (CiscoSNMP == 0):
row.append('SNMP')
filewrite.writerow(row)
答案 1 :(得分:0)
cvs.writerow的参数是一个列表,即单元格列表。 因此,您可以在输出之前构建行,例如:
row=[]
if something:
row.append("cell1valA")
else:
row.append("cell1valB")
row.append("cell2")
row.append("cell3")
row.append("cell4")
filewrite.writerow(row)