2013-05-28 34 views
2

我寫了一個功能,我需要使用多個文件。當我用它爲一個文件的作品,但是當我嘗試使用它爲更多我得到的錯誤。我附上我的代碼,有人可以告訴我它有什麼問題嗎?使用多個文件的功能

#! /usr/bin/env python 
#peice of code to find the information from a star catalog for the brightest star from each indiviual CCD 

import os, sys, glob, pyfits, numpy 

dr='/home/desar2.cosmology.illinois.edu+7443/DESFiles/desardata/OPS/red/20130321211637_20130106/red/DECam_00166306/catalogs/' 

def meanarr(image, res=None): 
"costruct code which runs over a single ccd to get the means" 
a=pyfits.getdata(image).MAG_AUTO 
q=numpy.mean(a) 
s=pyfits.getdata(image).X2WIN_IMAGE 
j=numpy.mean(s) 
f=pyfits.getdata(image).Y2WIN_IMAGE 
z=numpy.mean(f) 
g=pyfits.getdata(image).XYWIN_IMAGE 
h= numpy.mean(g) 
a=[q,j,z,h] 
print a 
s0='' 
return res 

#image=dr+'DECam_00166306_01_star_catalog.fits' 
#s=meanarr(image) 

for arg in (sys.argv): 
print arg 
s=meanarr(arg) 

print '---done---' 

它應該只是爲每個輸入文件打印一個四位數的列表,但我認爲最後四行有問題。

+0

請使用有關您的編程環境標籤,如'python'和'pyfits',而不是過於籠統的,如'file'和'function'。 –

+0

好的,下次我會的。 – astrochris

+0

「sys.argv」的第一個元素始終是你運行的腳本,而不是圖像。那可能是錯誤嗎? – User

回答

2

sys.argv的第一個元素始終是您運行的腳本,而不是圖像。那可能是錯誤嗎?

你應該做

for arg in sys.argv[1:]: 
    print arg 
    s=meanarr(arg) 
+0

是的,這是問題,謝謝 – astrochris