可以在Python中标记命令行输入吗?
我用的很多命令行的 .exe 应用程序都允许你使用标志来输入一些可选的参数,比如说:program.exe -o outputfile.txt -f F。在这里,"-o" 表示你可以指定一个不同于默认的输出文件名,而 "-f" 则表示脚本的另一个选项。
到目前为止,我一直在用 sys.arg[] 这些变量来输入文件名等信息到我的 Python 脚本里,但这些输入必须按照固定的顺序来输入。请问有没有办法在 Python 脚本中使用带标志的输入呢?
[我之所以会问这个,是因为我不小心把输入文件名和输出文件名的顺序搞错了,结果覆盖了我的输入文件]
2 个回答
2
你可以使用Python提供的模块来处理命令行参数。
- http://docs.python.org/library/optparse.html(注意:这个模块已经不推荐使用了)
- http://docs.python.org/library/argparse.html
不过,这样做并不能解决意外覆盖输入文件的问题。为了解决这个问题,你可以加一个简单的警告,告诉用户如果输出文件已经存在,继续操作会覆盖这个输出文件,并等待用户输入以继续。这种方式至少可以给用户一个机会去停止处理,如果他们发现输出文件名不正确的话。
可以像这样做:
>>> var = raw_input('Please enter "Y" to proceed further:')
Please enter "Y" to proceed further:Y
>>> var
'Y'
>>>if var == 'Y':
... sys.exit(0)
...