我正在尝试编写一个 python 脚本,它接受可选的输入参数和一个输入文件:
./script --lines 1 file.txt
应该取1为行数(--lines),然后取file.txt作为输入文件。但是,getopt 甚至看不到“file.txt”,因为它前面没有参数名称。
如何获取文件名?我已经考虑过使用 sys.arv[-1],但这意味着当我运行时:
./script --lines 1
然后 1 将作为输入文件名。然后我的脚本将抛出错误(如果不存在名为 1 的文件):
错误:找不到文件“1”
这可行,但不是一个很好的解决方案。有解决办法吗?
请您参考如下方法:
绝对使用argparse -- 它包含在python2.7+ 中,可以很容易地为旧版本安装:
parser = argparse.ArgumentParser()
parser.add_argument('--lines', type=int, default=0, help='number of lines')
parser.add_argument('file', help='name of file')
namespace = parser.parse_args()
print namespace.lines
print namespace.file
