質問
の前 質問, どうでも参加できま一覧の文字列を文字列になる値が引用を削除するのようなもの:
['a', 'one "two" three', 'foo, bar', """both"'"""]
:
a, 'one "two" three', "foo, bar", "both\"'"
疑いのcsvモジュールしそれを実現するためには、ここでは、がんがどのように出力します。
解決
を使用 csv
モジュールで行うことができます方法:
import csv
writer = csv.writer(open("some.csv", "wb"))
writer.writerow(the_list)
が必要な場合は、文字列だけを使用 StringIO
インスタンスとしてのファイル:
f = StringIO.StringIO()
writer = csv.writer(f)
writer.writerow(the_list)
print f.getvalue()
出力: a,"one ""two"" three","foo, bar","both""'"
csv
書道の読み込みが可能で。微調整でき、その出力を定義することによって dialect
, 設定し直 quotechar
, escapechar
, など、必要に応じて:
class SomeDialect(csv.excel):
delimiter = ','
quotechar = '"'
escapechar = "\\"
doublequote = False
lineterminator = '\n'
quoting = csv.QUOTE_MINIMAL
f = cStringIO.StringIO()
writer = csv.writer(f, dialect=SomeDialect)
writer.writerow(the_list)
print f.getvalue()
出力: a,one \"two\" three,"foo, bar",both\"'
同一の方言使用できるcsvモジュールの読み込み文字列の背後にリストアップしました。
他のヒント
の関連で、Pythonの ビルトエンコーダ でも文字列の脱出:
>>> print "that's interesting".encode('string_escape')
that\'s interesting
こちらはずす。
def quote(s):
if "'" in s or '"' in s or "," in str(s):
return repr(s)
return s
まみを引用価値がカンマはなります
>>> x= ['a', 'one "two" three', 'foo, bar', 'both"\'']
>>> print ", ".join( map(quote,x) )
a, 'one "two" three', 'foo, bar', 'both"\''
所属していません StackOverflow