2011-01-28 21 views
2

djangoアプリケーションでテキストファイルを処理しようとしています。データをインポートする前に、最初の行を評価してファイルの種類を判断する必要があります。アップロードされたテキストファイルの最初の行をPython/djangoで読む

私はファイル[0]を試しましたが、もちろん動作しません。それは私に "'' InMemoryUploadedFile 'オブジェクト"と言っているエラーを与えましたが、私はそのことに関する多くの文書を見つけることができません。

だから誰もファイルの最初の行を取得する方法を知っていますか?

+0

はあなたがやったDIDの 'dir()' 'そのInMemoryUploadedFile'の?それは 'read()'メソッドを持つべきです。 –

+0

file.read(0)はエラーをスローしませんでしたが、何も返されていないようです。 – MrGlass

答えて

2

DjangoのUploadedFileには、ユーザーが提供するアップロードされたファイルのMIMEタイプを返すcontent_type属性があります。

とにかく最初の行を読みたい場合は、アップロードされたファイルオブジェクトに対してreadline()メソッドを使用して最初の行を取得できます。 DjangoのUploadedFileオブジェクトはオブジェクトのようなファイルであるため、ファイルオブジェクトの一般的に使用されるメソッドをサポートします。

Django docs on UploadedFile

+0

3つの異なるベンダのうちの1つからのcsvで、フィールドオーダがそれぞ​​れ異なります。私はデータを引き出す前にどちらを決定する必要があります。 readLine()を使うと、forループでファイルをループする前にラインポインタをリセットする必要がありますか? – MrGlass

+0

普通のファイルオブジェクトのようにポインタをリセットします。 UploadedFileで利用可能) – Imran

+0

私のクイックテストによれば、ポインタをリセットする必要はありません。このshoudl仕事は素晴らしい、ありがとう。 – MrGlass