मैं अजगर का उपयोग करके एक .txt फ़ाइल में प्रिंट को पुनर्निर्देशित करना चाहता हूं। मेरे पास 'लूप' के लिए है, जो कि मेरे प्रत्येक .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)
?