python - csv writer 添加不需要的逗号

标签 python python-3.x csv tkinter

我的代码的这一部分使用 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/

相关文章:

Python mysql参数和加载数据命令(仍然不起作用)

vb.net - 如何在 Vb.Net 中使用 streamwriter 从字符串变量创建 csv 文件?

python - 如何在 py.test 中使用多核?

python - Docker Python API - 标记容器

python - 如何在我的 PySimpleGUI 桌面应用程序中使用 Google Fonts?

mysql - 加载数据文件错误: data too short for column

python - 在 Pandas read_csv 期间标记化数据时出错。如何真正看到坏线?

python - 在 2018 年 3 月 1 日之前将 App Engine Python ssl 升级到 2.7.11

python - 使用 rpy2 将 .RData 文件读入 python

arrays - 解析 JSON 来做数学题?