我确信答案已经出来了,但我已经阅读了网站信息,观看了他们制作的视频,我试图找到一个真正基本的教程,但我做不到。我一天中大部分时间都在处理这个问题,这对我来说真的没有意义。
这是我的错误:
vco@geoHP:~$ python3 a_blah.py "don't scare the cats" magic
Traceback (most recent call last):
File "a_blah.py", line 20, in <module>
arguments = docopt.docopt(__doc__)
File "/usr/lib/python3/dist-packages/docopt.py", line 579, in docopt
raise DocoptExit()
docopt.DocoptExit: Usage:
a_blah.py <start>... <end>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "a_blah.py", line 33, in <module>
except DocoptExit:
NameError: name 'DocoptExit' is not defined
第20行-我不明白为什么这一行会造成错误,它以前也起过作用,我在其他节目中也看到过这一行?
我不知道为什么docopt的第570行会产生错误——我见过其他人使用DocoptExit(),这不是docopt的一部分吗?我必须为此编写自己的退出函数吗?(我没见过其他人这么做)
这是代码
import docopt
if __name__ == '__main__':
try:
arguments = docopt.docopt(__doc__)
print(arguments['<start>'])
print("that was that")
print(arguments['<end>'])
except docopt.DocoptExit:
print("this hasn't worked")
我想做的是我写的一个脚本,它可以根据文件的扩展名将文件从一个地方移动到另一个地方。
因此,命令行中的参数将是文件类型、开始目录、目标目录,以及在它们被移动后从开始目录中删除它们的选项。
不过,在将docopt包含在其他脚本中之前,我正在尝试(但失败了)让它自己工作。
您想要的异常在docopt
的命名空间中。您永远不会将它导入到全局命名空间中,因此不能简单地使用它的名称来引用它。您需要单独导入它,或者通过模块引用它。您也不应该在异常后使用括号。
import docopt
try:
# stuff
except docopt.DocoptExit:
# other stuff
或
import docopt
from docopt import DocoptExit
try:
# stuff
except DocoptExit:
# other stuff