我有一个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)
没有出现错误消息,则需要部分说明。
答案 0 :(得分: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)
请参阅errors and exceptions上的python文档。
答案 1 :(得分:0)
答案 2 :(得分:0)