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

moving multiple files by a parameter applied beforehand

我在移动依赖文件时遇到问题。我有很多带有 2 个不同扩展名的文件。例如 ; xenian10.fits、xenian11.fits、xenian12.fits 并且每个版本都有一个具有不同扩展名的等效版本,如 xenian10.no、xenian11.no、xenian12.no 等。

所有的 .fits 文件都包含一个不同的参数,所以它是这样的;

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/')

这里的问题是包含 splitex 的第一行;

b = os.path.splitex(fitsName)[O] + '.no'
shutil.move(b, '/home/color/')

移动所有带有 .no ext 文件的文件。但是,我希望它仅链接到 .fits 文件,这些文件仅由上一行代码中的 "color" 参数移动到。因为目前如果只有 xenian10.fits 与参数 "color" 一起使用,那么只有相应的 .fits 文件移动,所以那部分没问题,但在那之后我只想要 xenian10.no 文件移动,但是代码移动了文件夹中的所有 .no 文件,而忽略了唯一移动的 .fits 是 xenian10.fits.

问题仅在于缩进。

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/')