Djangoフォームを使用してCSVファイルを正常にアップロードしてアクセスし、ファイル内の行をループすることができます。ただし、最初の行には列ヘッダーが含まれており、コードがファイルの読み込みを開始すると、これらは何らかの理由でスキップされます。 for
ループ内のファイルへの最初の呼び出しは、ファイルの2行を返すために引き起こす何io.TextIOWrapperを使用してメモリ内のCSVファイルから最初の行を読み取る
from io import TextIOWrapper
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
csvfile = TextIOWrapper(request.FILES['file'], encoding="utf-8")
logger.info('Position: {}'.format(csvfile.tell())) # <-- This returns 0
for line in csvfile:
logger.info('line: {}'.format(line)) # <-- The first iteration actually logs the second line in the CSV file.
?
ありがとう、@ shwetabh-sharan。その答えは、追加情報の要求に終わった。テスト用のCSVファイルを開き、データをスクラブして新しい名前で再保存した後、スクラブされたCSVファイルから列ヘッダー行を読み取ることができました。 – 5280Angel