Python CSVリーダーを使用して「疑似CSV」ファイルを解析しようとしていますが、追加のロジックを追加する方法について疑問があります。これを「疑似 CSV」ファイルと呼ぶ理由は、入力ファイルの一部の行に、実際の CSV データが始まる前にテキスト (30 ~ 40 文字) があるためです。このテキストを削除する最善の方法を見つけようとしています。
現在、上記のテキストを削除するための 3 つのオプションを見つけました。
Python から、grep と sed を呼び出し、出力を一時ファイルにパイプして、csv リーダーに渡すことができます (うーん、このオプションは避けたいと思います)。
CSV 方言を作成して不要なテキストを削除します (このオプションは間違っているように感じます)
File オブジェクトを拡張し、必要に応じて不要なテキストを削除する next() 関数を実装します。
入力ファイルの生成方法を制御できないため、生成を変更するオプションはありません。
入力ファイルの問題に気付いたときに持っていた関連コードを次に示します。
with open('myFile', 'r') as csvfile:
theReader = csv.reader(csvfile)
for row in theReader:
# my logic here
with open()
上記のオプション 3 を使用する場合、ソリューションは非常に単純ですが、構文を組み込むことはできません。
それで、ここに私の質問があります(実際には2):オプション3はこの問題を解決する最良の方法ですか?もしそうなら、どうすればそれをwith open()
構文に組み込むことができますか?
編集:LinuxでPython 2.7を使用していることを忘れていました。