2016-04-16 29 views
-1

嗨所以我跟在一堆FITS文件循環(均價他們)工作,我只是想知道如果有一種方法來保存環路輸出作爲新/個人FITS文件?節能for循環輸出,以適合不同的文件

我似乎無法弄清楚如何使輸出的名字進行迭代,並與實際數據輸出。

所以我希望循環到10個不同的輸出保存爲:bfdiffs1.fits,bfdiffs2.fits等..

謝謝!

示例代碼如下:

btotal = np.asarray([bias1data,bias2data,bias3data,bias4data,bias5data, 
bias6data,bias7data,bias8data,bias9data,bias10data, 
bias11data,bias12data,bias13data,bias14data,bias15data]) 

ftotal = np.asarray([flat1data,flat2data,flat3data,flat4data,flat5data, 
      flat6data,flat7data,flat8data,flat9data,flat10data]) 

mv = np.max(btotal, axis=0) 
sums = np.sum(btotal, axis=0) 
sub = sums-mv 
btotalavg = sub/(len(btotal)-1) 

i=0 
for fdata in ftotal: 
    bfdiff = abs(fdata-btotalavg) 
    for bfdata in bfdiff: 
     newname = 'bfdiff%s' %i 
     for w in newname: 
      hdu = fits.PrimaryHDU(bfdiff) 
      hdu.writeto(w+'.fits') 

回答

0

無論出於何種原因,你是在爲你的文件名中的每個字符遍歷。你寫:

newname = 'bfdiff%s' % i 

然後

for w in newname: 
    ... 

什麼是你期待的是更多的for循環呢?它所做的就是循環遍歷newname每一個字符。

順便說一下,您使用的文件名格式模板'bfdiff%s'但後來另外追加+ '.fits'。你可以做到這一切與格式字符串像'bfdiff%s.fits'一舉。

你的另一個問題是,你實際上並沒有增加你的循環變量i,我認爲你想這樣做是爲了讓每個文件具有不同的文件名。