美文网首页
V2.2python 循环控制流:整理文件夹中的文件

V2.2python 循环控制流:整理文件夹中的文件

作者: 大白python | 来源:发表于2019-07-23 19:49 被阅读0次
    大白python.png

    最近收集图片,一个文件夹中有5000张图片文件,图片名称为字符,需要将同一内容的图片放到一个文件。判断条件是图片名前16位字符是相同的。加一条:此python代码放到任一文件夹下都可执行。
    步骤:

    1. 获取当文件夹路径
    2. 获取当文件夹中的所有文件与文件夹,存在列表中file_or_folder[]
    3. 判断file_or_folder列表中每一个元素,isfile则移入以图片前16位字符命名的文件夹中,isfolder则pass
      3.1 新建一存储文件夹后:整理后,务必确保“整理后”是空的
      3.2 isfile 拆出文件名,并取前16位
      3.3 在“整理后”文件夹中新那子前16位字符命名的文件夹,并将16位字符存入到set中,方便第二个文件移动时,检查子文件夹是否已存在了。
      3.4 移动图片到相应的前16位字符命名的文件夹中

    此程序用到的知识点:

    1. python对文件与文件夹的操作,用到python内置模块OS模块,shutil模块
    2. 字符串操作,python内置模块

    使用方法:
    将保存此代码的py文件放到图片文件夹,编辑器打开文件,运行就行了。

    # -*- conding = utf8 -*-
    #athur : 大白python
    #time  : 20190723
    #title : python整理文件夹中的文件
    #简书  :大白python
    
    import os
    import shutil
    
    #1. 获取当文件夹路径
    current_path = os.getcwd()
    print("开始处理文件夹中的图片:"+current_path)
    
    #2. 获取当文件夹中的所有文件与文件夹,存在列表中file_or_folder[]
    file_or_folder = os.listdir(current_path)
    #print(file_or_folder)
    
    #3. 判断file_or_folder列表中每一个元素,isfile则移入以图片前16位字符命名的文件夹中,isfolder则passabs
    # 3.1 新建一存储文件夹后:整理后,务必确保“整理后”是空的
    #os.makedirs(current_path + "\\"+"整理后")
    set = []
    for filename in file_or_folder:
        if os.path.isfile(filename) and filename.split(".")[1] == "jpg" :
            #3.2 isfile 拆出文件名,并取前16位
            pic_name = filename.split(".")[0]
            print("正在移动图片:"+ filename)
            string16 = pic_name[:16]
        
        #3.3 在“整理后”文件夹中新那子前16位字符命名的文件夹,并将16位字符存入到set中
        if string16 in set:
            #存在文件夹
            #3.4 移动图片到相应的前16位字符命名的文件夹中
            shutil.move(current_path +"\\"+ filename,current_path + "\\"+"整理后"+ "\\"+ string16)
        else:
            #不存在文件夹创建文件夹
            set.append(string16)
            os.makedirs(current_path + "\\"+"整理后"+ "\\"+ string16)
            #3.4 移动图片到相应的前16位字符命名的文件夹中
            shutil.move(current_path +"\\"+ filename,current_path + "\\"+"整理后"+ "\\"+ string16)
    else:
        print("不是\"JPG\"图片")
    
    python整理文件夹中的文件.jpg

    PS: 改为通用程序,只需将“string16”改为以本地时间为命名就可以通用了,用文件名的前16位字符命名文件夹是我需要的格式。
    另:此程序只能在Windows下使用,在NAS文件夹上也不能用。

    100分大神,80分大牛,60分大白,对我,够用,能用,就好

    相关文章

      网友评论

          本文标题:V2.2python 循环控制流:整理文件夹中的文件

          本文链接:https://www.haomeiwen.com/subject/wtzalctx.html