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

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

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

最佳答案

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

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

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

关于python - 如何在目录中的所有文件上运行 python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39283608/

相关文章:

python - 如何在 Windows 中离线更新整个 Anaconda Python 发行版?

scripting - 如何在 "openssl s_client -connect"内强制退出?

python - 如何使用 python 执行此命令并返回结果?

python - 在python中比较超过最大递归深度?

apache - 使用 Apache Sling 的 Scala 2.8 脚本引擎

powershell - Powershell查找最新文件并在文件资源管理器中打开

java - 如何每天创建新目录,并将其名称作为当前日期

c++ - 打开当前目录中的文件

python - 需要帮助在同一目录中的文件夹中创建 txt 文件

python - 计算两个 csv 文件之间差异的更快方法