【问题标题】:csv writer adding unwanted commascsv writer添加不需要的逗号
【发布时间】:2018-12-16 05:44:30
【问题描述】:

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

Shuttle 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,如果需要任何其他信息,请询问。谢谢。

【问题讨论】:

  • 您说要在变量、字符串和 date.time 之间使用逗号,但您想要的示例输出只有一个逗号。你要哪个?
  • 我最终得到了 def shutter_maint(): removed = open("Todays-Adapto.csv", "a", newline="") removed_write = csv.writer(removed) removed_write.writerow( [var_1_default.get(), "删除维护时间", now_date, "@" , now_time]) removed.close() 谢谢:)

标签: python python-3.x csv tkinter


【解决方案1】:

问题是您将一个大字符串作为行传递。但是writerow 想要一个 sequence 字符串。因为字符串是其所有字符的序列,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])

【讨论】:

    猜你喜欢
    • 2014-04-24
    • 2016-03-07
    • 2016-09-05
    • 2019-01-30
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多