[英]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.