我创建了一个python脚本来读取一个变量
FILTER
从文件夹中的文件并将结果显示在屏幕上。但是,有4种类型的变量,我希望这个脚本将它们全部分离到相应的文件夹中。例如,将所有文件移动到名为“V”的文件夹中(如果它们有变量)
FILTER = V
FILTER = B
,然后移动所有
B
import glob
import pyfits
import shutil
myList = []
for fitsName in glob.glob('*.fits'):
hdulist = pyfits.open(fitsName)
b = hdulist[0].header['FILTER']
c = b
myList.append(c)
hdulist.close()
for item in sorted(myList):
print item
屏幕结果:
B
B
B
V
V
V
R
R
R
I
I
I
现在我用shutil运行代码;
import os
import glob
import pyfits
import shutil
myList = []
for fitsName in glob.glob('*.fits'):
hdulist = pyfits.open(fitsName)
hdu = hdulist[0]
prihdr = hdulist[0].header
a = hdulist[0].header['FILTER']
b = a
if b == "B":
shutil.move('/home/usr/Desktop/old/', '/home/usr/Desktop/new/B/')
myList.append(b)
hdulist.close()
就像上面的代码,如果c=FILTERNAME1移到SOMEFOLDER1,如果c=FILTERNAME2移到SOMEFOLDER2,依此类推。。我不能为此写一个工作代码行,所以任何帮助将不胜感激。
解决方案;
import os
import glob
import pyfits
import shutil
for fitsName in glob.glob('*.fits'):
hdulist = pyfits.open(fitsName)
hdu = hdulist[0]
a = hdulist[0].header['FILTER']
if a == "B":
shutil.move(fitsName, '/home/usr/Desktop/new/B/')
if a == "V":
shutil.move(fitsName, '/home/usr/Desktop/new/V/')
if a == "R":
shutil.move(fitsName, '/home/usr/Desktop/new/R/')
if a == "I":
shutil.move(fitsName, '/home/usr/Desktop/new/I/')