代码之家  ›  专栏  ›  技术社区  ›  NapolyoN

读取文件并用变量分隔后将其移动到文件夹

  •  0
  • NapolyoN  · 技术社区  · 6 年前

    我创建了一个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/')
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Simon    6 年前

    shutil.move(source,destination)
    

    将源文件和目标文件定义为字符串,然后将它们传递给 shutil.move() 像这样:

    import shutil
    if c == "A":
        shutil.move(source, destA)
    elif c == "B":
        shutil.move(source, destB)
    

    我还建议您学习if语句是如何工作的。以下是一些资源: https://www.tutorialspoint.com/python/python_if_else.htm , https://www.w3schools.com/python/python_conditions.asp , https://docs.python.org/3/tutorial/controlflow.html