파이썬을 사용하여 인쇄를 .txt 파일로 리디렉션하고 싶습니다. 'for'루프가 있는데,이 출력을 모두 하나의 파일로 리디렉션하고 싶을 때 각 .bam 파일의 출력을 '인쇄'합니다. 그래서 넣어 보았습니다
f = open('output.txt','w'); sys.stdout = f
내 스크립트의 시작 부분에. 그러나 .txt 파일에는 아무것도 없습니다. 내 스크립트는 다음과 같습니다
#!/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....
그래서 무엇이 문제입니까? 이 sys.stdout 외에 다른 방법이 있습니까?
내 결과는 다음과 같아야합니다.
Filename: ERR001268.bam
Readlines finished!
Mean: 233
SD: 10
Interval is: (213, 252)
f.write(line)
-끝에 줄 바꿈을 삽입합니다.
f.write(line)
데이터에 줄 바꿈을 추가하지 않습니다.
f.write(line+'\n')
그러나 항상 ..
f.write(data)
않습니까?