2011-12-21 13 views
3

私はdelimietedファイルを解析するためにPythonでcsvモジュールを使用しています。私は、csvのregister_dialectメソッドを使って、ディリミタとその他のパラメータを指定します。この間はうまくいきましたが、今では区切り文字として 'タブ'を使用するファイルがあります。これは明らかに私にエラーを与えます - 区切り文字として '\ t'を使うと、 "TypeError:"区切り文字は "1文字文字列でなければなりません"。 ここにタブ文字を使用できる方法はありますか?今私のオプションは何ですか?python csv register_dialect

ありがとうございます!

fileObject = open(fullFilePath,'rb') 
csv.register_dialect('MyDialect', delimiter='\t',doublequote=False,quotechar='',lineterminator='\n',escapechar='',quoting=csv.QUOTE_NONE) 
myReader = csv.reader(fileObject,'MyDialect') 

私はpython 2.7を使用しています。

+2

コードを投稿できますか? csv.register_dialect( 'foo'、delimiter = '\ t')は私のためにうまくいきます...また、使用しているPythonのバージョンを教えてください。ありがとう! – t00ny

+0

あなたのコードは正常に動作しているようです。http://ideone.com/nPzwy – Acorn

+0

あなたのコードには 'r '\ t''や'' \\ t''ではなく '\ t''があることを確認してください。 1つのタブ文字を生成する確実な方法は 'chr(9)'です。 – 9000

答えて

0

私はregister_dialectメソッドを使用したことがありませんが、csv.readerにはの値を受け入れるdelimiter引数を渡すことができます。 http://docs.python.org/library/csv.html

+0

ご回答ありがとうございます。私は使用しているコードでオリジナルの投稿を編集しました。 – Rinks

0

デフォルトの方言excel_tabを確認してください。 dialect=excel_tabcsv.readerコールで指定できます。これは、CSVを使用するデフォルトのdialect=excelを置き換えます。