通过预先应用的参数移动多个文件
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/')
我在移动依赖文件时遇到问题。我有很多带有 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/')