[英]redirecting stdout to file
在使用pysam模块时,我尝试将stdout重定向到文件,如下所示:
bam=sys.argv[1]
samfile = pysam.AlignmentFile(bam, "rb")
for alignment in samfile:
reverse=isReverse(alignment.flag)
if (reverse):
outfile = pysam.AlignmentFile("-", "w", template=samfile)
with open('reverse.sam', 'w') as f:
with (f):
for s in samfile:
print('HEY')
outfile.write(s)
虽然将“ print('HEY')”写为reverse.sam,但“ outfile.write(s)”不是。 我应该怎么做才是呢?
谢谢马克
不应该这样吗
for alignment in samfile.fetch()
? 是什么
type (alignment)
让? 而您的额外目的是什么
with (f)
上下文? :)从您发布的内容来看,外部上下文已经没有意义了。
干得好。
bam_file = sys.argv[1] # or '-' (if reading from stdin) or 'path/to/your/input.bam'
sam_file = 'path/to/your/output.sam' # or '-' (if writing to stdout) or 'path/to/your/output.bam' (for bam file)
infile = pysam.AlignmentFile(bam_file, "rb")
outfile = pysam.AlignmentFile(sam_file, "w", template=infile) # or "wb" if writing to bam file
i = 0
for alignment in infile:
if alignment.is_reverse:
outfile.write(alignment)
i += 1
outfile.close()
infile.close()
print("Wrote {} alignments.".format(i))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.