ฉันต้องการเปลี่ยนเส้นทางการพิมพ์ไปยังไฟล์. txt โดยใช้ python ฉันมีลูป '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)
?