在python中读取csv文件两次

use*_*261 2 python csv python-2.7

这是我的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()
Run Code Online (Sandbox Code Playgroud)

我可以打印“#查找订单employeeID = 5,shipCountry =“巴西”“,但是对于#查找订单employeeID = 5我什么也没得到。我在想如何多次读取(选择)同一csv文件中的行。

wkl*_*wkl 5

您只是在读CSV文件,但是如果要多次处理数据,则应将内容读入变量。这样,您就不必在每次需要处理文件时都重新读取该文件。

import csv

# Read order rows into our list
# Here I use a context manager so that the file is automatically
# closed upon exit
with open('orders.csv') as orders_file:
    reader = csv.reader(orders_file, delimiter=',')
    orders = list(reader)

# Find order employeeID=5, shipCountry="Brazil"
print "Find order employeeID=5, shipCountry=\"Brazil\""
for order in orders:
    if order[2] == '5' and order[13] == 'Brazil':
        print order

# Find order employeeID=5
print "Find order employeeID=5"
for order in orders:
    if order[2] == '5':
        print order
Run Code Online (Sandbox Code Playgroud)

如果您的CSV文件太大而无法容纳到内存中(或者由于某种原因您不想将其全部读取到内存中),那么您将需要另一种方法。如果需要,请发表评论。