1

stdin開いているモードを変更するにはどうすればよいですか? 具体的には、CSV ファイルを python スクリプトにパイプしてデータをクリーンアップしていますが、データに垂直タブがある場合は、ユニバーサル改行モードにする必要があるようです。

問題のデータは\x0b、入力ストリーム内のいくつかの文字のようです。

「rU」でファイルの1つを開いた後、pythonによって印刷されたように

['P', 'B', '', '1 W Avene, #8\x0bMiami Beach, FL 33139']
['S', 'H', '\x0bElberon, NJ 07740', '9 E Avenue\x0bElberon, NJ 07740']
['C', 'W', 'E R A', '2 B 3rd Floor \x0bNew York NY 10023 ']
['D', 'M', '', '1 K Street, NW\x0bWashington, DC 20005']
['E', 'W', '', '5 P C Lane\x0bDenver, CO 80209-3311']
4

2 に答える 2

2

あなたの問題は、あなたが読んでいるCSVファイルがCR(\r)改行のみを使用していることです。垂直タブとは関係ありません。Python 2.x はstdinユニバーサル ライン サポートなしで開きます (バイナリ ファイルが正しく機能するように)。

回避策として、入力が比較的小さいと仮定して、これを試すことができます。

csv.reader(sys.stdin.read().split('\r'))
于 2013-03-28T20:09:53.757 に答える
0

PEP 278によると、universal-newlines はデフォルトでオンになっています。

ユニバーサル改行サポートはデフォルトで有効になっていますが、Python の構成中に無効にすることができます。

サンプルデータはありますか?

于 2013-03-28T15:40:33.167 に答える