我的公司有名为
的文件"3688-35(DUSTY GREY-BLK).jpg"
"3688-36A(SLIVER).jpg"
"..."
应放在“ 3688 ”文件夹中。
经过多年和多年我面临 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 :(得分: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()