Verileri [1,2,'a','He said "what do you mean?"']
CSV biçimli bir dizeye benzer şekilde yayınlamak istiyorum .
Normalde bunun için kullanılır csv.writer()
, çünkü tüm çılgın uç durumları ele alır (virgül kaçışı, tırnak işareti kaçışı, CSV lehçeleri, vb.) Yakalama, csv.writer()
bir dizgeye değil, bir dosya nesnesine çıktı almayı beklemektir.
Şu anki çözümüm bu biraz hilekâr işlev:
def CSV_String_Writeline(data):
class Dummy_Writer:
def write(self,instring):
self.outstring = instring.strip("\r\n")
dw = Dummy_Writer()
csv_w = csv.writer( dw )
csv_w.writerow(data)
return dw.outstring
Kimse, uç durumları iyi idare eden daha zarif bir çözüm verebilir mi?
Düzenleme: İşte bunu nasıl yaptım:
def csv2string(data):
si = StringIO.StringIO()
cw = csv.writer(si)
cw.writerow(data)
return si.getvalue().strip('\r\n')
StringIO()
olduğuio
kütüphanede.