CSV-只读第二张表

时间:2019-04-05 15:24:09

标签: python csv

首先,我刚刚开始使用Python进行编程,因此请记住这一点:-)

我正在尝试读取具有2个表的CSV文件。我只想打印第二张表。这是csv文件的一个示例:

id, book, pages
1, Webster’s Dictionary, 1000
2, Tony the Towtruck, 20
3, The Twelfth Night, 144

id, rope, length, diameter, color
1, hemp, 12-feet, .5, green
2, sisal, 50-feet, .125, brown

我只想打印第二张表(如果可能的话,也可以不包含标题)。

现在我有以下代码:

import csv

with open('myOutput-01.csv', 'r') as file:
    csv_reader = csv.reader(file)

    next(csv_reader)

    for line in csv_reader:
        print(line)

我该如何完成我想要的?预先感谢!

2 个答案:

答案 0 :(得分:1)

只需跳过所有内容,直到到达第二个表的标题即可。

with open('myOutput-01.csv', 'r') as file:
    csv_reader = csv.reader(file)
    reached_table = False
    for row in csv_reader:
        if reached_table:
            # do stuff
        elif row == 'header of the second table':
            reached_table = True

答案 1 :(得分:0)

最好的建议是将表分成csv文件。但是,如果您坚持只使用上述一个csv文件,则应这样阅读:

with open('myOutput-01.csv', 'r') as file:
        second_table = file.read().split('\n\n')[1]
        second_table_lines = second_table.split('\n')
        csv_reader = [x.split(', ') for x in second_table_lines[1:]]
        for line in csv_reader:
            print(line)
# Prints :['1', 'hemp', '12-feet', '.5', 'green']
#         ['2', 'sisal', '50-feet', '.125', 'brown']