【发布时间】:2017-06-03 20:20:25
【问题描述】:
我正在尝试拆分包含 201 行的 CSV 文件。前 136 行包含与其余 65 行不同的信息。无论如何我可以在 136 行之后拆分 CSV 文件吗?
到目前为止,我发现的解决方案均分文件。我也将其视为一种可能的解决方案:https://gist.github.com/jrivero/1085501
【问题讨论】:
-
将它们读入,然后取两片
rows[:136]和rows[136:]
我正在尝试拆分包含 201 行的 CSV 文件。前 136 行包含与其余 65 行不同的信息。无论如何我可以在 136 行之后拆分 CSV 文件吗?
到目前为止,我发现的解决方案均分文件。我也将其视为一种可能的解决方案:https://gist.github.com/jrivero/1085501
【问题讨论】:
rows[:136]和rows[136:]
您可以在文件对象上使用两个csv.reader 对象。 切片使用itertools.islice将第一个读取器对象分割到指定的行数,然后使用第二个读取器读取其余行。
如果两个部分通过say分隔符不同,两个csv.reader对象可以轻松处理:
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
【讨论】:
如果您知道需要跳过的行数,可以使用csvreader.line_num 来了解您正在阅读的行数,您可以在此处找到更多信息:https://docs.python.org/2/library/csv.html#reader-objects
【讨论】: