Excelを使用して編集できないCSVファイルがあります。私は行番号を入力せずに上のいくつかの行(ヘッダー行の前)と最後の行を削除する動的なコードを作成したい。私が今使っているコードは:Pythonを使用してCSVファイルから最上行と最下行を削除する方法
FIRST_ROW_NUM = 1
ROWS_TO_DELETE = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 5421344}
with open('filename', 'r') as infile,open('filename', 'w') as outfile:
outfile.writelines(row for row_num, row in enumerate(infile, FIRST_ROW_NUM)
if row_num not in ROWS_TO_DELETE)
このコードの問題は、それらを削除するために手動で行番号を入力する必要があります。
私が持っているもう1つの問題は、削除する行数が一定でなく、ファイルからファイルに変化することです。
サンプルCSVは、私は何とか私の側からの入力なしに、それらの行を削除することができ、コードをしたいhere
が装着されています。
注:ありCSVの最後の行についての情報はありませんが、それはこのようなものです:
Grand Total: - - - - - - - - - - - - - - - - - - - - - - - - - -
「ヘッダー行まで」とは、ヘッダー行も削除することを意味しますか、ヘッダー行の前の行のみを削除しますか?ファイル内の他の行と区別するために使用できるヘッダー行、または前または後続行の特徴はどんなパターンですか? –
申し訳ありませんが間違いでした。私は@rd_nielsenの質問を編集しました – PyNoob