質問

の前 質問, どうでも参加できま一覧の文字列を文字列になる値が引用を削除するのようなもの:

['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"\''
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top