可以在Python中标记命令行输入吗?

0 投票
2 回答
3075 浏览
提问于 2025-04-16 05:45

我用的很多命令行的 .exe 应用程序都允许你使用标志来输入一些可选的参数,比如说:program.exe -o outputfile.txt -f F。在这里,"-o" 表示你可以指定一个不同于默认的输出文件名,而 "-f" 则表示脚本的另一个选项。

到目前为止,我一直在用 sys.arg[] 这些变量来输入文件名等信息到我的 Python 脚本里,但这些输入必须按照固定的顺序来输入。请问有没有办法在 Python 脚本中使用带标志的输入呢?

[我之所以会问这个,是因为我不小心把输入文件名和输出文件名的顺序搞错了,结果覆盖了我的输入文件]

2 个回答

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)
... 
7

如果你在用Python 2.7的话,建议使用argparse这个工具。如果你用的是更老的版本,那就要用optparse模块。

撰写回答