对于我的HW,我需要输出其值等于CSV文件指定列中值的行。即使没有行,标题也需要按原样输出。 列号在标准输入的第一行指定,其值在标准输入的第二行指定。输入的示例:
2
ACampus
Name,Campus,LabName
Yuzu Mori,ACampus,Laboratory of Omics
Yuki Toi,BCampus,Laboratory of RNA Function
Yo Aa,CCampus,Laboratory of Viral Infectious Diseases
Yu Ya,ACampus,Laboratory of Functional Genetics
Su Yo,BCampus,Laboratory of Cellular Function
输出示例:
Name,Campus,LabName
Yuzu Mori,ACampus,Laboratory of Omics
Yu Ya,ACampus,Laboratory of Functional Genetics
我试着那样解决这个问题
#!usr/bin/env python3
import sys
import csv
data = sys.stdin.readlines()
column_to_be_matched = int(data.pop(0))
word_to_be_matched = data.pop(0)
col_headers = data.pop(0)
print(col_headers)
for row in csv.reader(data):
if row[column_to_be_matched] == word_to_be_matched:
print(row)
该程序打印列标题,但不打印包含所需值的行。我还可以如何访问通过标准输入指定的行中的值
改变你的“如果”条件。有两个原因:1)python以零索引开始,因此第2列表示第[1]2)行readlines()上有换行符(\n),因此必须删除它们
样本输出:
相关问题 更多 >
编程相关推荐