2012-05-23 2 views
0

Я пытаюсь написать ряд строк (это строка заголовка) в файл CSV, используя csv.writer следующим образом:избежать кавычки строки данных строки с csv.writer

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 

(я не не знаю, почему эта первая строка имеет отступы - это не так, как в моем коде).

Использование Python 2.7.3 в Linux.

writer.writerow ([«ESReadings»]) пишет отлично, без окружающих двойных кавычек.

print tempstring отображает на экране, как ожидалось.

writer.writerow ([tempstring]) пишет отлично, за исключением того, что вокруг него есть двойные кавычки.

Я импортирую эти данные в программу Windows, и она не понравится кавычки, как я могу их избежать?

+0

Вы должны использовать 'для ввода в xrange (1, numsensors + 1):' вместо 'while' –

ответ

1

Писатель csv считает, что вы пытаетесь написать одну запись, поэтому она помещает кавычки вокруг полной строки. Вы должны передать строку в виде списка (или другого итерабельного) строк, и пусть писатель вставляет запятые. Что-то вроде этого:

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

Brilliant, работал отлично. Спасибо, что ответили так быстро. – tim2407