-1

これについていくつかの同様の投稿を見てきましたが、何も私の問題を解決していません。バックスラッシュ付きの数字のリストを読み取り、.csv に書き込んでいます。明らかに、バックスラッシュが問題を引き起こしています。

addr = "6253\342\200\2236387"

with open("output.csv", 'a') as w:
  write = writer(w)
  write.writerow([addr])

r"6253\342\200\2236387" を使用すると、出力に必要なものが正確に得られることがわかりましたが、ファイルから入力を読み取っているため、生の文字列を使用できません。私は .encode('string-escape') を試しましたが、出力として 6253\xe2\x80\x936387 が得られましたが、これは間違いなく私が望むものではありません。unicode-escape でエラーが発生しました。何かご意見は?

4

3 に答える 3

0

文字列のr前にあるのは、文字列を定義するためだけです。ファイルからデータを読み取っている場合、それはすでに「生」です。データを読み込むときに特別なことをする必要はありません。

データがプレーン ascii でない場合は、データをデコードするか、バイナリで読み取る必要があることに注意してください。たとえば、データが utf-8 の場合、読み取る前に次のようにファイルを開くことができます。

import codecs
f = codecs.open("test", "r", "utf-8")
于 2014-08-20T20:40:27.120 に答える
-1

これは少し前に作成しました。これにより、csv ファイルに書き込むことができます。

def write2csv(fileName,theData):

    theFile = open(fileName+'.csv', 'a')

    wr = csv.writer(theFile, delimiter = ',', quoting=csv.QUOTE_MINIMAL)

    wr.writerow(theData)
于 2014-08-20T20:34:08.047 に答える