2017-06-03 11 views
1

201行のCSVファイルを分割しようとしています。最初の136行には、残りの65行とは異なる情報が含まれています。とにかく136行後にCSVファイルを分割できますか?指定した行の後にCSVファイルを分割するPython

私が今までに見つけた解決策は、ファイルを均等に分割します。私はこれを可能な解決策としても検討しました。https://gist.github.com/jrivero/1085501

+0

これを読んで、2つのスライスの[rows:136]と 'rows [136:] 'を取ることができます。 –

答えて

3

ファイルオブジェクトに2つのcsv.readerオブジェクトを使用できます。 スライスitertools.isliceを使用して指定した数の行までの最初のリーダーオブジェクトを読み取り、2番目のリーダーを使用して残りの行を読み取ります。 2つの部分は言うの区切り文字によって異なる場合

、2つのcsv.readerオブジェクトを簡単にこの処理することができます:あなたは、あなたが行を知ってcsvreader.line_numを使用することができますスキップする必要がある行数を知っている場合

import csv 
from itertools import islice 

with open('your_file_name.csv') as f: 
    first_rows = list(islice(csv.reader(f), None, 136)) 
    last_rows = list(csv.reader(f, delimiter=';')) # use a different delim or quote char 
+0

解決に感謝します!私がパンダとその読み込みCSV関数を使用していた場合のアプローチは同じですか? – wolverinejohn

+0

@wolverinejohnファイルイテレータを直接スライスし、そのスライスをpandasのcsv read関数に渡すことができます。 –

関連する問題