Writing out to a gives no new file, but no error either
目标:
如:在命令行中:
$ python printfile.py --out_arg fileOutput.txt
…将在与printfile.py相同的目录中生成fileoutput.txt
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | def parse_arguments(): options = parse_arguments() #output arguments parser.add_argument("--out_arg", action='store', default=False, dest='out_arg', help="""Output file""") def print_output(seqID, seq, comm): #"a" append is used since this is the output of a for loop generator if options.out_arg outputfh = open(options.out_33,"a") outputfh.write("@{} {} {} +".format(seqID, seq, comm)) else: sys.stderr.write("ERR: sys.stdin is without sequence data") |
但是,当我从def main()调用print_output时——未显示——传入我感兴趣的元组(seqid、seq、comm),没有写入任何文件,也没有给出任何错误消息。argparse参数是否没有将输入的文件存储为dest?尝试写入时是否使用文件句柄?
您从不在输出文件上调用
您应该始终使用
1 2 3 4 5 | if options.out_arg: with open(options.out_33, 'a') as outputfh: outputfh.write(...) else: ... |
当然,所有这些都假定您实际上是在某个地方调用