我的代码的这一部分使用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,是否需要其他任何信息。谢谢。
答案 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])