【发布时间】:2020-03-03 16:55:09
【问题描述】:
在我必须做的任务中,我应该创建一个替代“rm”命令的方法。我必须传递可变数量的参数,例如,
$ rm.py /path/to/some/file ./somefile someotherfile
$ rm.py /path/to/some/file ./somefile someotherfile -r
$ rm.py -r /path/to/some/file ./somefile someotherfile
$ rm.py *.java
-r 参数可以在任何地方作为任何参数传递。 -r 的含义与使用常规“rm”命令时的含义相同。 它递归地删除一个目录及其内容。
它运行脚本,并且给出的任何路径都像
rm.py /path/to/some/file
然后将其移动到输出目录 '~/rm_trash' 如果有重复,我也担心。
但首先,我在理解如何处理它时遇到了一些麻烦。 我是否应该在 for 循环中进行处理,如果其中一个参数等于“-r”,则从那里开始?
我应该导入和使用 argparse 吗?
我还有一些问题,但我想先处理一下我上面问的问题。
不得不再次发布,仍然不明白我如何获得除“r”之外的任意数量参数的具体参数
【问题讨论】:
-
当前代码现在如何检查参数?您是在检查
sys.argv的元素(出于教学原因)还是使用参数解析库? -
我早些时候发布了这个,并被告知要查看 argparse 库,我确实认为它有一些帮助。但我很好,不知道我是否正确使用它,也不知道我是否可以在作业中使用它。一位同行告诉我,首先要在一个 foror 循环中查找“-r”参数。但是怎么做?
-
到目前为止您尝试过什么?发布一些现有代码将有助于提供更好的答案。此外,StackOverflow 用户将无法确定在作业中使用
argparse是否是一个好主意。 -
@NicholasM 是的,我知道,好吧,目前我没有任何代码,只是伪代码,我不知道我是否可以发布。是的,可能的重复是我的帖子已关闭并且在关闭时没有帮助我。
标签: python arguments command-line-arguments argparse