2013-05-28 3 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

Смежные вопросы