什么';输出是Python对fileinput.input()的模拟吗?

什么';输出是Python对fileinput.input()的模拟吗?,python,file,stdout,Python,File,Stdout,允许在通过sys.argv[1://code>或sys.stdin提供的输入文件列表中的所有行上循环(如果前者为空) 如果给定并且sys.stdout否则,是否有类似的简单方法输出到最后一个参数?您可以使用argparse模块并添加如下命令行参数: parser.add_argument('outfile', nargs='?', type=argparse.FileType('w'), default=sys.stdout) 您可以检查最后一个参数是否

允许在通过
sys.argv[1://code>或
sys.stdin
提供的输入文件列表中的所有行上循环(如果前者为空)


如果给定并且
sys.stdout
否则,是否有类似的简单方法输出到最后一个参数?

您可以使用
argparse
模块并添加如下命令行参数:

parser.add_argument('outfile', nargs='?', type=argparse.FileType('w'),
                    default=sys.stdout)

您可以检查最后一个参数是否是一个文件,在这种情况下,它是一个输入,因此将输出设置为
sys.stdout
,否则打开一个新文件并将其作为输出,然后将其从
sys.argv
中删除


或者,只需使用sys.stdout,让您的用户使用
>文件名
来存储到文件。

的确-但有没有办法让用户先处理除最后一个参数以外的所有参数,即我想支持
myprog infile1 infile2 infile3 outfile
之类的语法?@Tobias Kienzler:如果输入文件的数量始终为3,可以添加位置参数。如果输入文件的数量不固定,则无法确定是否存在输出文件。