перемещение нескольких файлов по заранее примененному параметру - PullRequest
1 голос
/ 05 апреля 2019

У меня проблема с перемещением зависимого файла.У меня есть много файлов с 2 разных exts.Например ;xenian10.fits, xenian11.fits, xenian12.fits и для каждой есть эквивалентная версия с различными ext, такими как 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/')

Проблема в том, что первая строка, содержащая сплитекс,

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.

1 Ответ

1 голос
/ 08 апреля 2019

Проблема была только с отступом.

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