csv writer添加不需要的逗号

时间:2018-07-08 08:53:40

标签: python python-3.x csv tkinter

我的代码的这一部分使用tkinter选项菜单的输出编写一个.CSV文件,该文件工作正常,但是我编写的文件包含每个字符之间的逗号,我希望它在变量,字符串和date.time参考之间。 / p>

它是这样的:

S,h,u,t,t,l,e,,1,,R,e,m,o,v,e,d,,@,,2,0,1,8,-,0 ,7,-,0,8,,0,9,:,4,6,:,3,8

S,h,u,t,t,l,e,,2,,R,e,m,o,v,e,d,,@,,2,0,1,8,-,0 ,7,-,0,8,,0,9,:,4,6,:,3,8

我想要这个:

班车1,已删除@ 2018-07-08 09:46:38

班车2,已删除@ 2018-07-08 09:46:38

def shuttle_removed():    
    removed = open("Todays-Adapto.csv", "a", newline="")
    removed_write = csv.writer(removed)
    removed_write.writerow(var_1_default.get()+" Removed @ "+now_date)
    removed.close()

我正在使用Python 3.7,是否需要其他任何信息。谢谢。

1 个答案:

答案 0 :(得分:1)

问题是您要传递一个大字符串作为行。但是writerow想要字符串的序列。因为字符串是其所有字符的序列,所以writerow会将每个字符变成其自己的列。

如果要编写单列行(但是为什么还要使用CSV文件而不是纯文本文件呢?),则需要传递一个字符串的列表或元组,而不是只是字符串:

removed_write.writerow([var_1_default.get()+" Removed @ "+now_date])

如果要两列,则需要传递两个字符串的列表或元组,而不是将所有字符串加在一起:

removed_write.writerow([var_1_default.get(), " Removed @ "+now_date])

如果要三列...,您就会明白:

removed_write.writerow([var_1_default.get(), " Removed @ ", now_date])