【发布时间】:2017-11-28 13:22:42
【问题描述】:
我有无法使用 Excel 编辑的 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)
这段代码的问题是我必须手动输入行号才能删除它们。
我遇到的另一个问题是要删除的行数不是恒定的,并且会因文件而异。
示例 CSV 附在here
我想要一个代码,可以在没有任何输入的情况下以某种方式删除这些行。
注意:没有关于 CSV 中最后一行的信息,但它是这样的:
Grand Total: - - - - - - - - - - - - - - - - - - - - - - - - - -
【问题讨论】:
-
“直到标题行”是否意味着您也想删除标题行,或者只删除标题行之前的行?标题行或前一行或后一行的特征是什么,可用于将它们与文件中的任何其他行区分开来?
-
对不起,这是一个错误,我已经编辑了问题@rd_nielsen
标签: python excel csv pandas numpy