我想编写一些代码,从文件(regular/gzip)或stdin读取数据,然后写入文件(regular/gzip)或stdout。这个问题的最佳解决方案是什么
到目前为止,我的解决方案如下所示:
# read input
if not args.input:
outlines = process_lines(sys.stdin, args)
elif args.input.endswith(".gz"):
with gzip.open(args.input, "r") as infile:
outlines = process_lines(infile, args)
else:
with open(args.input, "r") as infile:
outlines = process_lines(infile, args)
# write output
if not args.output:
for line in outlines:
sys.stdout.write("%s\n" % line)
elif args.output.endswith(".gz"):
with gzip.open(args.output, "w") as outfile:
for line in outlines:
outfile.write("%s\n" % line)
else:
with open(args.output, "w") as outfile:
for line in outlines:
outfile.write("%s\n" % line)
你觉得怎么样?什么是更好的更通用的解决方案
或
相关问题 更多 >
编程相关推荐