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

问题描述 投票:1回答:1

我有移动依赖文件的问题。我有很多文件有2个不同的exts。例如 ; xenian10.fits,xenian11.fits,xenian12.fits和每个都有一个带有不同ext的equilevant版本,如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文件移动所有文件。但是,我希望它只链接到仅由代码的上一行的“color”参数移动到的.fits文件。因为目前只有xenian10.fits在所有其他参数中使用参数“color”,所以只有相应的.fits文件移动,所以该部分没问题,但之后我只想移动xenian10.no文件,但代码移动文件夹中的所有.no文件都忽略了唯一移动的.fits是xenian10.fits。

python file move shutil fits
1个回答
1
投票

问题只有缩进。

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/')
© www.soinside.com 2019 - 2024. All rights reserved.