如何在目录中的所有文件上运行python脚本?

时间:2016-09-02 02:48:36

标签: python scripting directory save

import pyfits

file = input('Enter file name as string: ')

newfile = file.replace('.fits','.dat')

f = pyfits.getdata(file)

h = pyfits.getheader(file)

g = open(newfile,'w')

ref = h['JD_REF']

for x in range (len(f)):
        deltat = (f[x][0]-ref)/86400
        refday = ref/86400
        time = refday + deltat
        mag = f[x][3]
        err = f[x][4]
        flag = f[x][8]
        g.write('%9s %9s %10s %2s\n'% (time,mag,err,flag))


g.close()

我正在尝试将包含数据表的.fits文件转换为.dat文件。该程序执行我想要的必要功能,但它只能一次执行一个动作。我有大约300个.fits文件需要转换,并通过每次输入名称都很痛苦来完成它们。我希望它可以选择运行程序,它会遍历并在我的目录中的所有文件上执行脚本。

如何修改此程序以在当前目录中的所有文件上运行?

1 个答案:

答案 0 :(得分:2)

使用os.listdir()。如果您只想返回与'.fits'模式匹配的文件,则可以使用glob.glob('*.fits')

这将返回当前目录中的所有文件,或者您作为参数提供的任何目录。您可以遍历这些名称,并将它们用作输入文件。类似的东西:

for f in os.listdir():
    newfile = f.replace('.fits', '.dat')
    # all the rest of your code
相关问题