2016-12-27 4 views
1

csv.writer требует, чтобы я питался в реальном CSV-файле. есть ли способ, которым я могу передать ему строку или список для записи вместо фактического файла? Я хочу вернуть csv для другой функции без записи файла.Python csv.writer без filehandler

hold = [some_list] 
blank = [] 
    w = csv.writer(blank, delimiter=',') 
    w.writerows(hold) 
    return w 

Traceback (most recent call last): 
    w = csv.writer(blank, delimiter=',') 
    TypeError: argument 1 must have a "write" method 

ответ

3

StringIO объект подходит для этого:

>>> f = StringIO() 
>>> w = csv.writer(f) 
>>> w.writerow(['hello', 'world']) 
13 
>>> f.getvalue() 
'hello,world\r\n' 
+0

Я использую Python 2 так io.BytesIO работал для меня, но это привело меня туда. Спасибо! –

Смежные вопросы