如何在python中将打印语句写入csv文件?

2024-05-13 22:06:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于动物统计数据的数据集。其中猫牙、狗牙、马牙和numfeet变量都是整数

            print(“Cat”,sum(cat_teeth), cat_numfeet)
            print(“Dog”,sum(dog_teeth), dog_numfeet)
            print(“Horse”,sum(horse_teeth), horse_numfeet)

上面的代码给了我

Cat 38 4
Dog 21 4
Horse 28 4

我希望将相同的输出导出到一个csv文件,其中有3列,如上图所示,用逗号(,)删除

我该怎么做

import csv 
    with open(“results.csv”, “w”) as csvfile:
    writer= csv.writer(csvfile)
    

    writer.writerow(“Cat”,sum(cat_teeth), cat_numfeet))
    writer.writerow(“Dog”,sum(dog_teeth), dog_numfeet)     
    writer.writerow(“Horse”,sum(horse_teeth), horse_numfeet)

不起作用


Tags: csvcsvfilecatwritersumprint动物dog
3条回答

将项目放入列表中,不要将它们作为单独的参数传递。另外,不要使用文本编辑器来编写代码,因为那些奇怪的引号“”可能会破坏代码。使用像Pycharm这样的IDE

writer.writerow(["Cat", sum(cat_teeth), cat_numfeet)])

如果您想使用print而不是writerow,我会这样做

import csv 
with open("results.csv", "w") as csvfile:
    print("Animal, cat_teeth, cat_numfeet", file=csvfile)
    print(f"Cat, {sum(cat_teeth)}, {cat_numfeet}", file=csvfile)
    print(f"Dog,{sum(dog_teeth)}, {dog_numfeet}", file=csvfile)
    print(f"Horse,{sum(horse_teeth)}, {horse_numfeet}", file=csvfile)

writerow只接受一个参数。将值转换为列表,然后调用函数

writer.writerow(["Cat",sum(cat_teeth), cat_numfeet])

相关问题 更多 >