繁体   English   中英

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

[英]How do i run python script on all files in a directory?

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文件需要转换,每次通过输入名称来完成它们都会很痛苦。 我希望它可以选择运行该程序,它会循环运行并对目录中的所有文件执行脚本。

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

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

这将返回当前目录或您作为参数提供的任何目录中的所有文件。 您可以遍历这些名称,并将其用作输入文件。 就像是:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM