I want to redirect the print to a .txt file using Python. I have a for
loop, which will print
the output for each of my .bam file while I want to redirect all output to one file. So I tried to put:
f = open('output.txt','w')
sys.stdout = f
at the beginning of my script. However I get nothing in the .txt file.
My script is:
#!/usr/bin/python
import os,sys
import subprocess
import glob
from os import path
f = open('output.txt','w')
sys.stdout = f
path="/home/xxx/nearline/bamfiles"
bamfiles = glob.glob(path + '/*.bam')
for bamfile in bamfiles:
filename = bamfile.split("https://stackoverflow.com/")[-1]
print 'Filename:', filename
samtoolsin = subprocess.Popen(["/share/bin/samtools/samtools","view",bamfile],
stdout=subprocess.PIPE,bufsize=1)
linelist= samtoolsin.stdout.readlines()
print 'Readlines finished!'
So what’s the problem? Any other way besides this sys.stdout
?
I need my result look like:
Filename: ERR001268.bam
Readlines finished!
Mean: 233
SD: 10
Interval is: (213, 252)