質問
DB(レコード全体)からデータを読み取り、.txtファイルに書き込むエクスポート機能があります。各フィールドは「;」で区切られた行に1レコードです。私が直面している問題は、一部のフィールドにCRLFが含まれており、ファイルに書き込むと次の行に移動し、ファイルの構造が破壊されることです。
唯一の解決策は、CRLFをカスタム値に置き換え、インポート時にCRLFに戻すことです。しかし、これらのファイルは巨大であり、置換操作によりパフォーマンスが低下するため、このソリューションは好きではありません。
他にアイデアはありますか?
ありがとう!
解決
はい、文字列値を引用するCSVジェネレーターを使用します。たとえば、Pythonの csv
モジュール。
たとえば( csv
docs ):
import csv
def write(filename):
spamWriter = csv.writer(open(filename, 'w'), quoting=csv.QUOTE_ALL)
spamWriter.writerow(['Spam'] * 5 + ['Baked Beans'])
spamWriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam\nbar'])
def read(filename):
reader = csv.reader(open(filename, "rb"))
for row in reader:
print row
write('eggs.csv')
read('eggs.csv')
出力:
['Spam', 'Spam', 'Spam', 'Spam', 'Spam', 'Baked Beans']
['Spam', 'Lovely Spam', 'Wonderful Spam\r\nbar']
他のヒント
ファイルのエクスポートとインポートの方法を制御できる場合は、XMLの使用を検討することもできます.."、"値に。
所属していません StackOverflow