你能在python中标记命令行输入吗?

时间:2010-10-19 18:38:32

标签: python command-line flags argv

我使用的许多命令行.exe应用程序允许您标记可选输入 例如program.exe -o outputfile.txt -f F. 其中“-o”表示与默认值不同的可选输出文件名,其中“-F”表示关于脚本的另一个选项。

到目前为止,我一直在使用sys.arg []变量来输入我的python脚本等文件名,但必须按照设置顺序才能将标记输入转换为python脚本?

[这一切都是因为我不小心把输入名称和输出名称放错了并覆盖了输入文件]

2 个答案:

答案 0 :(得分:7)

如果您使用的是Python 2.7,则需要使用argparse。如果您使用的是旧版本,则需要optparse模块。

答案 1 :(得分:2)

您可以使用python提供的模块来处理命令行参数。

但这不会消除无意中覆盖输入文件的问题。为此,您可以发出一个简单的警告:如果输出文件已经存在,则继续进行将覆盖输出文件并等待用户输入继续进行。这样,如果您发现输出文件名不正确,至少可以给出停止处理的机会。

这样的事情:

>>> var = raw_input('Please enter "Y" to proceed further:')
Please enter "Y" to proceed further:Y
>>> var
'Y'
>>>if var == 'Y':
...  sys.exit(0)
...