Je souhaite rediriger l'impression vers un fichier .txt en utilisant python. J'ai une boucle «for», qui «imprimera» la sortie pour chacun de mes fichiers .bam pendant que je souhaite rediriger TOUTES ces sorties vers un fichier. Alors j'ai essayé de mettre
f = open('output.txt','w'); sys.stdout = f
au début de mon scénario. Cependant, je n'obtiens rien dans le fichier .txt. Mon script est:
#!/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('/')[-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....
Donc quel est le problème? Un autre moyen en plus de ce sys.stdout?
J'ai besoin que mon résultat ressemble à:
Filename: ERR001268.bam
Readlines finished!
Mean: 233
SD: 10
Interval is: (213, 252)
================= Comment le temps passe vite. Il y a près de 10 ans, j'ai commencé à travailler sur la bioinformatique sans aucune compétence en codage. Ensuite, j'ai abandonné mon doctorat et ma carrière précédente et suis devenu un pur ingénieur logiciel.
f.write(data)
?