我的代码的这一部分使用 tkinter 选项菜单的输出编写一个 .CSV 文件,该文件工作正常,但我编写的文件在每个字符之间包含逗号,我希望它在变量、字符串和 date.time 引用之间。
它是这样的:
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,如果需要任何其他信息,请询问。谢谢。
最佳答案
问题是您传递了一个大字符串作为行。但是 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])
关于python - csv writer 添加不需要的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51230326/