【问题标题】:Avoiding quotes around row of string data with csv.writer使用 csv.writer 避免在字符串数据行周围加上引号
【发布时间】:2012-05-29 14:02:06
【问题描述】:

我正在尝试使用 csv.writer 将一行字符串(它是标题行)写入 csv 文件,如下所示:

mbfile=open(pathtodata + "mbsensors.csv", "ab")
writer=csv.writer(mbfile)

writer.writerow(["ESReadings"])

i=1
tempstring='DateTime'

while i<=numsensors:
    tempstring=tempstring+','+ "%02d"%i +'.Cooked'
    i=i+1

print tempstring
writer.writerow([tempstring])
mbfile.close

(我不知道为什么第一行缩进了 - 在我的代码中不是这样)。

在 Linux 中使用 Python 2.7.3。

writer.writerow(["ESReadings"]) 写得很好,没有双引号。

打印临时字符串按预期显示在屏幕上。

writer.writerow([tempstring]) 写得很好,除了它有双引号。

我正在将此数据导入 Windows 程序,但它不喜欢引号,我该如何避免它们?

【问题讨论】:

  • 你应该使用for i in xrange(1,numsensors+1):而不是while

标签: python string csv


【解决方案1】:

csv 编写器认为您正在尝试编写单个条目,这就是它在整个字符串周围加上引号的原因。您应该将该行作为字符串列表(或其他一些可迭代的)传递,并让作者插入逗号。像这样的:

tempstring=['DateTime']
while i<=numsensors:
 tempstring.append("%02d"%i +'.Cooked')
 i=i+1
 print tempstring
 writer.writerow(tempstring)

【讨论】:

  • 太棒了,完美运行。谢谢你这么及时的回答。
猜你喜欢
  • 2013-05-27
  • 1970-01-01
  • 2013-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-16
  • 1970-01-01
  • 2018-04-21
相关资源
最近更新 更多