在循环中使用CSV行长度作为变量

时间:2019-01-16 21:18:53

标签: python

我是python的新手-在下面的脚本中,我将变量Connection conn = null; String url = "jdbc:mysql://localhost/"; String dbName = "someDb"; String driver = "com.mysql.jdbc.Driver"; String userName = "root"; String password = "password"; try { Class.forName(driver).newInstance(); conn = DriverManager.getConnection(url+dbName,userName,password); System.out.println("Connected to the database"); conn.close(); System.out.println("Disconnected from database"); } catch (Exception e) { System.out.println("NO CONNECTION =("); } } 设置为0,然后遍历了csv文件的每一行。当计数达到5时,我想停止编写脚本,并且确实如此。

但是,在这种情况下,我知道csv中的行数是5。如果我不知道行数怎么办?我已经注释掉了两行,我试图用它们来给我count,然后使用row_count变量代替(共5)。但是,当我取消对这两行的注释,脚本仅在row_count处停止。我在这里做错什么了,如何进一步使用print(row_count)变量,以便row_count出现在最后一行?

sys.exit()

1 个答案:

答案 0 :(得分:2)

请确保将reader的所有操作都保留在with块中。 with块退出后,由于文件已自动关闭,您将无法再访问阅读器。

count = 0
with open('mydata.csv', newline='') as csvfile:

    reader = csv.DictReader(csvfile)

    for row in reader:
        count += 1
        print(count)

此外,您不需要sys.exit(),循环用完后,循环会自行终止。在这段代码之后,您可以在任何地方使用count