我知道在使用 argv 时我必须输入文件作为参数(例如:python ex15.py ex15_sample.txt)并且在使用 raw_input 时 我输入文件名作为输入。
但我似乎无法找出为什么一种获取文件名的方法会比另一种更好。谁能解释一下为什么?
请您参考如下方法:
那是因为如果交互式用户输入不是关键功能,您通常应该避免它。在您的示例中:从 stdin 或命令行读取允许组合不同的程序并在脚本等中运行它们。
假设您执行了很多代码并坐在屏幕前等待输入请求的到来。在命令行上指定所有相关信息并去准备一杯咖啡不是更好吗?
你可以做什么:
- 检查 len(argv) > 1
- 如果是,使用argv[1]作为文件名
- 如果没有,请询问用户。
这为您的程序添加了一个很好的功能:您可以在命令行上指定文件名或以交互模式输入它。
试试这个:
try:
fn = argv[1]
except IndexError:
fn = raw_input("filename > ")
