我是蟒蛇新手,所以请耐心等待。
我不知道如何描述,所以我只是举个例子。
python CODE.py -i1 input1.txt -i2 input2.txt -o output.txt
python有可能吗?我已经抬头看了一会儿,但没有找到答案。
谢谢!
答案 0 :(得分:1)
正如thefourtheye所说,你可以使用argparse模块。但是,如果您想要简单的解决方案,只需将2个输入和输出文件路径作为参数传递给您的可执行文件,然后使用sys.argv
按顺序将它们添加到您的程序中。 sys.argv[0]
是您的应用程序名称,sys.argv[1]
是第一个输入文件路径,sys.argv[2]
是第二个输入文件路径,sys.argv[3]
是输出文件路径。
import sys
input1 = sys.argv[1]
input2 = sys.argv[2]
output = sys.argv[3]
现在你可以打电话如下:
python my_app.py /path/to/input1.txt /path/to/input2.txt /path/to/output.txt
答案 1 :(得分:1)
是的,您可以在您的代码中使用系统参数。
以下代码段可能有助于您解决问题
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('inFile', nargs=2, help="Choose in file to use")
parser.add_argument('outFile', nargs=1, help="Choose out file to use")
args=parser.parse_args()
your_fun_call( args.inFile , args.outFile[0] )
初看起来可能看起来很奇怪,但您可以参考此文档 argparse
注意: infile参数的标志为2,因为您需要两个输入 文件(nargs代表参数的数量)
答案 2 :(得分:1)
而不只是链接到argparse module或argparse tutorial, 其他受访者可能应该向您展示如何做到这一点:
import argparse
# Build the parser
p = argparse.ArgumentParser(prog='CODE.PY')
p.add_argument('-i1', type=argparse.FileType('r'),
metavar='sourcefile1', help='First input file')
p.add_argument('-i2', type=argparse.FileType('r'),
metavar='sourcefile2', help='Second input file')
p.add_argument('-o', type=argparse.FileType('w'),
metavar='destfile', help='Destination filename')
# Parse sys.argv
ns = p.parse_args()
# Use the files
data1 = ns.i1.read()
data2 = ns.i2.read()
result = data1[:10] + data2[:10]
ns.o.write(result)
argparse的一个很好的功能是它不仅可以构建解析器,还可以为命令行帮助创建一个不错的选项:
$ python CODE.PY -h
usage: CODE.PY [-h] [-i1 sourcefile1] [-i2 sourcefile2] [-o destfile]
optional arguments:
-h, --help show this help message and exit
-i1 sourcefile1 First input file
-i2 sourcefile2 Second input file
-o destfile Destination filename