python - 是否可以输入用户选择的输入和输出文件
python - is it possible to enter user-chosen input and output files
我是python的新手,还请多多包涵
不知道怎么形容,就举个例子吧
python CODE.py -i1 input1.txt -i2 input2.txt -o output.txt
python可以做到这样吗?查了好久没找到答案
谢谢!
正如 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
是的,您可以在代码中使用系统参数。
以下代码片段可能会帮助您解决问题
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 参数的 nargs 为 2,因为您需要两个输入
文件( nargs 代表参数数量)
而不只是链接到 argparse module or the 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
我是python的新手,还请多多包涵
不知道怎么形容,就举个例子吧
python CODE.py -i1 input1.txt -i2 input2.txt -o output.txt
python可以做到这样吗?查了好久没找到答案
谢谢!
正如 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
是的,您可以在代码中使用系统参数。
以下代码片段可能会帮助您解决问题
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 参数的 nargs 为 2,因为您需要两个输入 文件( nargs 代表参数数量)
而不只是链接到 argparse module or the 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