2016-12-02 43 views
1

我公司所拥有的文件名为蟒蛇 - 找到的文件名不同于FOLDERNAME

"3688-35(DUSTY GREY-BLK).jpg" 
"3688-36A(SLIVER).jpg" 
"..." 

应放置在“”文件夹中。

经过长年累月我现在面临6位数字图片和〜3500个文件夹无数放错地方的图片需要进行检查放置在正确的文件夹,

所以我觉得我可以写一个脚本只能列出错误放置的文件和文件夹的像

"1111/1112.jpg" 
"1234/1243.jpg" 

我做一些搜索后,我发现match filenames to foldernames then move files是什么样的,我需要,但我不能修改回答我的需要,因为文件名模式。

我一开始坚持,但我认为https://pymotw.com/2/glob/可以做一些上市和诡计https://linux.die.net/man/3/fnmatch

回答

0

我解决了我的问题。

from glob import glob 
import logging, time, os 

def listdirs(path): 
    return [d for d in os.listdir(path) if os.path.isdir(d)] 

def find_pics(): 
    folders = listdirs(".") 
    for dir in folders: 
     time.sleep(0.3) 
     pics = os.listdir(dir) 
     for pic in pics: 
      if pic.endswith(".jpg"): 
       if dir not in pic: 
        logging.warning(dir + '/' + pic) 
       else: 
        pass 
      else: 
       pass 
    return 

def main(): 
    logging.basicConfig(filename='wrong_placed.log', filemode='w', level=logging.INFO, format='%(asctime)s [%(levelname)s] %(message)s \n') 
    logging.debug("Starting to check is the picture wrong placed.") 
    find_pics() 
    return 

if __name__ == '__main__': 
    main()