使用python在csv文件中计数行问题

时间:2019-02-04 22:46:13

标签: python csv

我有一个csv文件列表:'empty.csv'和'headerOnly.csv' 第一个文件为空,第二个文件只有一行(标题)

我正在尝试在文件为空时引发异常,并在仅包含标题的情况下继续操作。

public static string ReplaceHost(string original, string newHostName)
{
    UriBuilder builder = new UriBuilder(original);
    builder.Host = new Uri(newHostName).Host;
    return builder.ToString();
}

我知道'headerOnly.csv'文件只有一行,并且第一条打印语句对此进行了验证。即使'headerOnly.csv'的打印语句打印出1,它也永远不会到达elif语句,甚至不会为该文件打印'csv文件为空'。 不知道为什么它没有到达小精灵

1 个答案:

答案 0 :(得分:3)

csv_file是文件中各行的生成器。第一次循环浏览时,它将读取所有行。第二次,没有更多的行可读取,因此循环返回0

将结果保存到变量:

line_count =  sum(1 for line in csv_file)
print(line_count)
if line_count == 0:
    print("csv file is empty")
elif line_count == 1:
    print("only has header")

如果之后仍要读取文件,则需要倒带:

csv_file.seek(0)