下面是我的Python代码:
import csv
# Reading
ordersFile = open('orders.csv', 'rb')
ordersR = csv.reader(ordersFile, delimiter=',')
# Find order employeeID=5, shipCountry="Brazil"
print "Find order employeeID=5, shipCountry=\"Brazil\""
for order in ordersR:
if order[2] == '5' and order[13] == 'Brazil':
print order
# Find order employeeID=5
print "Find order employeeID=5"
for order in ordersR:
if order[2] == '5':
print order
ordersFile.close()
我可以打印一些“#Find order employeeID=5,shippcountry=”巴西“的内容,但是对于Find order employeeID=5,我什么也没有。我在考虑如何多次读取(选择)同一个csv文件中的行。在
您可以简单地将reader对象结果转换为一个列表:
reader对象就像一个生成器,一旦迭代了值,就不能再开始第二个循环来再次读取值。在
最好一次读取一次文件,因为I/O可能是程序中最慢的部分。在
如果您需要重新读取文件,您可以关闭它并重新打开它,或者在开始处添加^{} ,即在循环之间添加
ordersFile.seek(0)
。在你只是在读CSV文件,但是如果你想在多个过程中处理数据,你应该把内容读入一个变量中。这样你就不必每次需要处理文件时都重新读取它。在
如果你的CSV文件太大而无法放入内存(或者由于某种原因你不想把它全部读入内存),那么你需要一种不同的方法。如果你需要,请留言。在
相关问题 更多 >
编程相关推荐