python - 对多个文件使用一个函数

标签 python file numpy pyfits

我编写了一个需要用于多个文件的函数。当我将它用于一个文件时,它可以工作,但是当我尝试将它用于更多文件时,我会收到错误。我已附上我的代码,有人可以告诉我它有什么问题吗?

#! /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---' 

它应该只为每个输入文件打印四个数字的列表,但我认为最后四行有问题。

最佳答案

sys.argv 的第一个元素始终是您运行的脚本,而不是图像。这可能是错误吗?

你应该这样做

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

关于python - 对多个文件使用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16795612/

相关文章:

android - 如何创建唯一的文件名?

python - 为什么这个循环会随着时间的二次方缩放

python - 如何排除 Django 模型中的等列?

python - django.db.utils.IntegrityError :

Python 多文件内容

Java getDesktop() 打开命令

python - 使用pandas写入和读取3D数据

python - 使用通过迭代计算的函数填充 numpy 矩阵

python - Numpy 数组上的分段函数

python - 如何为 numpy 矩阵生成干净的 x 和 y 轴?