0

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

但是,我试图让它在命令行中输入 csv 文件中的列标题之一,并且代码只会制作指定命令的图表。示例:python histogram_maker.py "C:/Folder" Area

我能够做到这一点,但我想添加一个会创建错误消息的部分,以防用户输入未在 csv 文件中指定的命令。示例:周界不存在。我怎样才能做到这一点?

for column in df:
    os.chdir(directory)
    if len(sys.argv)>2:
        for x in arguments:
            if x.endswith(column):
                # code to make histogram

需要的部分会说如果x.endswith(column)没有应该出现错误消息。

4

3 回答 3

1

在 python 中发出错误的标准方法是使用raise Exception("error message"). 或者以Exception相同的方式使用的子类。如果您不想将堆栈跟踪转储给用户,您可以将整个脚本包装在一个try...except语句中,并使用类似于块sys.stderr.write(str(e))中的内容except将错误消息打印到 STDERR。然后使用sys.exit(1)以非零返回码退出,或者更好地使用从errno模块中选择适当的返回码传递给sys.exit.

所以我会做这样的事情(如果我理解你的问题):

import sys, errno

try:
    for column in df:
        os.chdir(directory)
        if len(sys.argv)>2:
            for x in arguments:
                if x.endswith(column):
                    # code to make histogram
                    pass
                else:
                    raise Exception("Perimeter does not exist")
except Exception, e:
    sys.stderr.write("Error: %s" % str(e))
    sys.exit(errno.EINVAL)

请参阅有关错误和异常的 python 文档。

于 2013-08-08T13:35:35.353 回答
0

你在找这个吗?

raise Exception("Perimeter does not exist")

文档

于 2013-08-08T13:36:11.127 回答
0

使用异常机制。看看http://docs.python.org/2/reference/executionmodel.html#exceptions

于 2013-08-08T13:36:19.740 回答