我得到了各种各样的.csv文件,每一个我都需要确定与最长列表相关联的密钥;把钥匙印出来。以及仅出现在csv文件最后一列中的值,并打印该值。我被鼓励使用命令行参数,我是新来的,所以我有一个艰难的时间与这个。下面是一个csv文件示例:
蚱蜢,草
蜥蜴、蚱蜢
鹰、蚱蜢、蜥蜴、兔子、老鼠、蛇
兔子,草
蛇,老鼠
老鼠,草
所以我要打印的最长列表的关键是鹰。 这是我目前掌握的代码:
import sys
import csv
if len(sys.argv) != "":
inf = open(sys.argv[0], "r")
outf = open(sys.argv[1], "w")
words = 0
maxvalue = 0
line = inf.readline()
for line in data:
while line != "":
words = words + len(line.split())
maxvalue = maxvalue + words
if words > value:
maxline = words
# Read the next line from the file.
line = inf.readline()
outf.write(str(maxvalue))
但由于我对命令行参数知之甚少,它无法工作,因为我遇到了一个索引错误,我不确定如何修复它。 在此代码之前,我已经打开/读取了文件。我使用的是Python3,任何帮助都将不胜感激!! 谢谢你
您需要将
if
条件更改为:[1:]
是指sys.argv
中除第一个以外的所有元素^{<如果没有命令行参数,cd4>}将是一个空列表,其计算结果为False
。非空列表的计算结果为True
sys.argv
的第一个元素是文件名(如果您在REPL中,''
),所以将始终计算为
True
在REPL中尝试此操作
您需要将
if
条件更改为:相关问题 更多 >
编程相关推荐