0

我有一个 csv 文件所在的目录。代码读取文件并根据文件中的数据创建直方图。

我已经将此作为命令提示符代码,我可以在其中输入参数,代码将查看 csv 文件以查看我列出的参数是否存在。我正在努力做到这一点,以便在我拼错命令时出现错误消息。如果第一个参数拼写正确而第二个参数拼写不正确,则以下代码有效,但如果第一个参数拼写错误且第二个参数正确,则不会显示错误消息。怎么了?

示例:python untitled14.py "Folder" Are Perimeter DOES NOT DISPLAY ERROR MESSAGE FOR are 但 python untitled14.py "Folder" Perimeter Are DOES DISPLAY ERROR FORARE

for x in arguments:  
    found_match = False
    for column in df:
        os.chdir(directory)
        if x.endswith(column): 
            found_match = True
            #histogram code
            continue
        else:
            pass
if found_match==False: 
    print files+" " + x + " does not exist"
4

1 回答 1

1

你的循环逻辑中有不必要的东西(和一些其他有问题的东西)。例如,这三行continue; else: pass字面上什么都没有。

最好的办法是重构您的代码以调用一个函数,True如果所有参数都经过验证,该函数将返回。你没有为此提供足够的代码,所以我会清理整个事情:

for x in arguments:  
    for column in df:
        os.chdir(directory)
        if x.endswith(column): 
            #histogram code
            break
    else:
        print "{0} {1} does not exist".format(files,x)
        break #or not, depending on what you want to do

如果 for 循环没有,这利用了一些很少使用for/else的做某事- 在你的情况下,这是一个错误。 break

如果你想让它真正可重用,你应该而不是仅仅打印raise一个Exception错误。

于 2013-08-12T17:22:29.440 回答