为了账号安全,请及时绑定邮箱和手机立即绑定

通过预先应用的参数移动多个文件

通过预先应用的参数移动多个文件

小唯快跑啊 2021-12-29 20:06:48
我在移动依赖文件时遇到问题。我有很多文件有 2 个不同的扩展名。例如 ; xenian10.fits、xenian11.fits、xenian12.fits 并且对于每个都有一个具有不同扩展名的等效版本,例如 xenian10.no、xenian11.no、xenian12.no 等等。所有的 .fits 文件都包含一个不同的参数,所以它是这样的;import osimport globimport shutilimport pyfitsfor fitsName in glob.glob('*.fits'):    hdulist = pyfits.open(fitsName)    hdu = hdulist[0]    a= hdulist[0].header['ITEM']    if a == "color":        shutil.move(fitsName, '/home/color/')    b = os.path.splitext(fitsName)[O] + '.no'    shutil.move(b, '/home/color/')    if a == "smell":        shutil.move(fitsName, '/home/smell/')    b = os.path.splitext(fitsName)[O] + '.no'    shutil.move(b, '/home/smell/')这里的问题是包含 splitex 的第一行;b = os.path.splitex(fitsName)[O] + '.no'shutil.move(b, '/home/color/')移动所有带有 .no ext 文件的文件。但是,我希望它仅链接到仅由代码前一行中的“颜色”参数移动到的 .fits 文件。因为目前如果只有 xenian10.fits 带有参数“color”等等,那么只有相应的 .fits 文件移动,所以这部分没问题,但之后我只想移动 xenian10.no 文件,但是代码移动文件夹中的所有 .no 文件不考虑移动的唯一 .fits 是 xenian10.fits。
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

问题仅在于缩进。


import os

import glob

import shutil

import pyfits


for fitsName in glob.glob('*.fits'):

    hdulist = pyfits.open(fitsName)

    hdu = hdulist[0]

    a= hdulist[0].header['ITEM']

    if a == "color":

        shutil.move(fitsName, '/home/color/')

        b = os.path.splitext(fitsName)[O] + '.no'

        shutil.move(b, '/home/color/')

    if a == "smell":

        shutil.move(fitsName, '/home/smell/')

        b = os.path.splitext(fitsName)[O] + '.no'

        shutil.move(b, '/home/smell/')


查看完整回答
反对 回复 2021-12-29
  • 1 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信