【发布时间】:2012-01-30 16:43:12
【问题描述】:
以下是 A Byte of Python 教程中的代码:
import sys
filename = 'poem.txt'
def readfile(filename):
#Print a file to standard output
f = file(filename)
while True:
line = f.readline()
if len(line) == 0:
break
print line,
f.close()
if len(sys.argv) < 2:
print 'No action specified'
sys.exit() //<--This is where the error is occurring
if sys.argv[1].startswith('--'):
option = sys.argv[1][2:] #fetches sys.argv[1] without first 2 char
if option == 'version':
print 'Version 1.2'
elif option == 'help':
print '''\
This program prints files to the standard output.
Any number of files can be specified.
Options include:
--version: Prints the version number
--help: Displays this help'''
else:
print 'Unknown option'
sys.exit()
else:
for filename in sys.argv[1:]:
readfile(filename)
当我运行此代码时,出现以下错误:
Traceback (most recent call last):
File "C:/Python/sysmodulepr.py", line 17, in <module>
sys.exit()
SystemExit
我不明白为什么。请帮忙。
【问题讨论】:
-
您可以检查this question 是否在没有回溯的情况下退出
-
我尝试运行此代码,但没有出现“错误”。下面的答案正确地将其识别为
SystemExit异常,这并不是真正的错误,而是(有效地)一个允许您在程序退出之前进行清理的钩子。但通常SystemExit异常不会产生这样的回溯。这里发生了一些奇怪的事情...... -
您使用的 Python 版本是什么?这不是普通的 Python 安装,对吧?
-
在这里告诉我们更多关于上下文的信息。您是如何执行此操作的?
标签: python