从 CSV 输入 Python 中查找最后一行

新手上路,请多包涵

我没有真正找到与我的问题相关的示例,因为我不了解 Pandas,所以我将其发布在这里。如果不清楚或已经回复,请告诉我。

我有一个像这样导入的 CSV 输入

def import_csv(csvfilename):
    data = []
    with open(csvfilename, "r", encoding="utf-8", errors="ignore") as scraped:
        reader = csv.reader(scraped, delimiter=',')
        row_index = 0
        for row in reader:
            if row:  # avoid blank lines
                row_index += 1
                columns = [str(row_index), row[0], row[1], row[2]]
                data.append(columns)

    return data

我用 input_rows 索引行(可能有更好的方法吗?)

输入示例:

 [['1',
  '[FirstValue]',
  'FirstText',
  'AB'],

 [...]

 ['12',
  "['LastValue']",
  "LastText",
  'YZ']]

我正在寻找这个输入列表的最后一行。有没有一种简单的方法可以在不遍历所有行的情况下做到这一点?

谢谢 !

原文由 SidGabriel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 530
2 个回答

您可以像这样获取数组中的最后一个元素:

some_list[-1]

事实上,您可以使用此语法做更多的事情。 some_list[-n] 语法获取倒数第 n 个元素。所以 some_list[-1] 得到最后一个元素, some_list[-2] 得到倒数第二个,等等

所以在你的情况下,它将是:

 import csv

def import_csv(csvfilename):
    data = []
    with open(csvfilename, "r", encoding="utf-8", errors="ignore") as scraped:
        reader = csv.reader(scraped, delimiter=',')
        for row in reader:
        if row:  # avoid blank lines
            row_index += 1
            columns = [str(row_index), row[0], row[1], row[2]]
            data.append(columns)
return data

data = import_csv(file_name)
last_row = data[-1]

原文由 Raoslaw Szamszur 发布,翻译遵循 CC BY-SA 4.0 许可协议

你实际上可以在你的 with 语句 中得到最后一行因为 python 支持负索引你可以使用

with open(csvfilename, "r", encoding="utf-8", errors="ignore") as scraped:
        final_line = scraped.readlines()[-1]


原文由 Pavel Halko 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏