目前,我的程序通过在终端中的程序名称之后接受两个参数来工作。
即。 python myscript.py file1 file2
有效
with open(sys.argv[1], 'r') as a, open(sys.argv[2], 'r') as b:
while True:
try:
#there are two while loops here, one for each file...
如何更改它,以便在我输入时:
$python myprogram.py help
是否生成了帮助消息(来自我创建的文本文件)?
有一种非常简单的方法吗?
答案 0 :(得分:0)
您需要检查sys.argv[1]
并查看它是否等于“帮助”。
if sys.argv[1] == "help":
在此块中,您可以将帮助文件打印出来给用户。
if sys.argv[1] == "help":
with open("help_readme.txt", "r") as f:
print(f.read())
如果sys.argv[1]
不等于“帮助”,请继续使用当前逻辑。
另一种方法是使用argparse
。当您通过-h
import argparse
parser = argparse.ArgumentParser(description='Process some files.')
parser.add_argument('file', nargs=2, help="List of two files to process")
args = parser.parse_args()
for f in args.file:
print(f) # This shows how to use the file name. You will want your logic here
使用此功能,如果将-h
传递给命令行,则会收到如下有用的消息:
usage: test.py [-h] file file
Process some files.
positional arguments:
file List of two files to process
optional arguments:
-h, --help show this help message and exit
它将接受2个文件名。如果您传递的不是两个值,它将产生适当的响应。