python - 是否可以输入用户选择的输入和输出文件

时间:2015-05-23 07:01:02

标签: python user-input stdin

我是蟒蛇新手,所以请耐心等待。

我不知道如何描述,所以我只是举个例子。

python CODE.py -i1 input1.txt -i2 input2.txt -o output.txt

python有可能吗?我已经抬头看了一会儿,但没有找到答案。

谢谢!

3 个答案:

答案 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 moduleargparse 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