argv与raw_input

010*_*amt 1 python raw-input argv

我知道在使用时argv我必须输入文件作为参数(例如:)python ex15.py ex15_sample.txt,使用时raw_input我输入文件名作为输入.

但我似乎无法找出为什么获取文件名的方法会比另一种更好.有人可以解释原因吗?

wal*_*mat 6

那是因为如果它不是关键功能,你通常应该避免交互式用户输入.在您的示例中:从stdin或命令行读取允许组合不同的程序并在脚本中运行它们等等.

想象一下,您执行了大量代码并坐在屏幕前等待输入请求到来.在命令行中指定所有相关信息并准备一杯咖啡不是更好吗?

你能做什么:

  • 检查len(argv)> 1
  • 如果是这样,请使用argv [1]作为文件名
  • 如果没有,请询​​问用户.

这为您的程序添加了一个很好的功能:您可以在命令行中指定文件名,也可以以交互方式输入文件名.

试试这个:

try:
    fn = argv[1]

except IndexError:
    fn = raw_input("filename > ")
Run Code Online (Sandbox Code Playgroud)