Tôi muốn chuyển hướng in sang tệp .txt bằng python. Tôi có một vòng lặp 'for', sẽ 'in' đầu ra cho mỗi tệp .bam của tôi trong khi tôi muốn chuyển hướng TẤT CẢ các đầu ra này thành một tệp. Vì vậy, tôi đã cố gắng để đặt
f = open('output.txt','w'); sys.stdout = f
ở đầu kịch bản của tôi. Tuy nhiên tôi không nhận được gì trong tệp .txt. Kịch bản của tôi là:
#!/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....
Vậy vấn đề là gì? Còn cách nào khác ngoài sys.stdout này không?
Tôi cần kết quả của mình như sau:
Filename: ERR001268.bam
Readlines finished!
Mean: 233
SD: 10
Interval is: (213, 252)
f.write(line)
- nó chèn một ngắt dòng ở cuối.
f.write(line)
không thêm ngắt dòng vào dữ liệu.
f.write(line+'\n')
Tuy nhiên, luôn luôn có thể ..
f.write(data)
?