什么';输出是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,可以添加位置参数。如果输入文件的数量不固定,则无法确定是否存在输出文件。