我正在用Python阅读CSV文件。
with open('file.csv', newline='') as f:
reader = csv.DictReader(f)
for row in reader:
print(row['id'], row['first_name'], row['last_name'], row['state'])
如何添加一些代码来过滤并仅打印特定"州"的行?我的意思是程序将询问用户他们想要打印哪个状态,并且只打印用户想要的特定状态的行(也包括&;id&;; &;first_name&;; &;last_name&;)。
我不能使用Pandas或Numpy库。
这里有一个使用列表推导式的建议。注意,我们首先在这里加载所有记录,然后进行筛选。其他解决方案建议在加载文件时过滤。
import csv
def filter_by_state(rows, target_state):
return [row for row in rows if row['state'] == target_state]
with open('file.csv') as f:
# This loads all records into memory and closes the CSV file afterwards
rows = list(csv.DictReader(f))
rows = filter_by_state(rows, 'OK')
if row['state'] == something:
print(row['id'], row['first_name'], row['last_name'], row['state'])
应该可以工作,如果你想让用户选择,让他修改变量"某某"。到他想要的
使用input()
方法,您请求用户输入(所需的状态)。使用if
语句控制打印输出。
with open('file.csv', newline='') as f:
reader = csv.DictReader(f)
user_state = input('Enter the searched state')
for row in reader:
if user_state == row['state']:
print(row['id'], row['first_name'], row['last_name'], row['state'])