Voglio reindirizzare la stampa su un file .txt usando Python. Ho un ciclo 'for', che 'stampa' l'output per ciascuno dei miei file .bam mentre voglio reindirizzare TUTTI questi output su un file. Quindi ho provato a mettere
f = open('output.txt','w'); sys.stdout = f
all'inizio della mia sceneggiatura. Tuttavia non ottengo nulla nel file .txt. La mia sceneggiatura è:
#!/usr/bin/python
import os,sys
import subprocess
import glob
from os import path
f = open('output.txt','w')
sys.stdout = f
path= '/home/xug/nearline/bamfiles'
bamfiles = glob.glob(path + '/*.bam')
for bamfile in bamfiles:
filename = bamfile.split('/')[-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!'
........print....
........print....
Allora, qual'è il problema? Qualche altro modo oltre a questo sys.stdout?
Ho bisogno che il mio risultato sia simile a:
Filename: ERR001268.bam
Readlines finished!
Mean: 233
SD: 10
Interval is: (213, 252)
f.write(line)
- inserisce un'interruzione di riga alla fine.
f.write(line)
non aggiunge un'interruzione di linea ai dati.
f.write(line+'\n')
, comunque ...
f.write(data)
?