• python中对文件和文件夹的操作


    一、说明

      python中主要通过os模块和shutil模块两个模块对文件进行相关操作,移动、复制、删除、重命名。比较大的文件通过命令操作可以节省时间,提高效率。

    二、实例对文件夹中文件的拷贝

    from multiprocessing import Pool,Manager
    import os
    #完成拷贝文件
    def copyFile(filename,oldname,newname,que):
    	"拷贝文件函数"
        # 三部操作  读取内容,写入内容  关闭
    	que.put(filename)
    	br = open(oldname+'/'+filename,'rb')
    	bw = open(newname+'/'+filename,'wb')
    	content = br.read()
    	bw.write(content)
    #关闭源文件和目标文件
    	br.close()
    	bw.close()
    
    def fun():
        #1、提示输入要拷贝的文件名字
        oldname = input("请输入你要拷贝的文件夹名字或者路径:")
        #2.创建文件夹,存放拷贝内容
        newname = oldname + '拷贝内容'
        os.mkdir(newname)
        #3.获取oldname中的目录和文件名字
        filenames = os.listdir(oldname)
        print(filenames)
        # #4.过滤文件
        # filename = solute(filenames)
        #利用多进程的方式拷贝数据
        po = Pool(5)   #进程数量
        que = Manager().Queue()   
        for fileName in filenames:   
            po.apply_async(copyFile,args=(fileName,oldname,newname,que))
        con = 0
        allcon = len(filenames)
        while True:#用主进程来显示拷贝进度
            dd = que.get()
            con +=1
            print('拷贝进度:%.2f%%'%((con/allcon)*100),end='')
            if con==allcon:
                print("恭喜你拷贝完成")
                break
    if __name__=='__main__':
    	fun()
    

      

     

    三、文件、文件夹的移动、复制、删除、重命名函数

    • 导入shutil模块和os模块

        import shutil,os
      
    • 复制单个文件

        shutil.copy("C:\a\1.txt","C:\b")
      
    • 复制并重命名新文件

        shutil.copy("C:\a\2.txt","C:\b\121.txt")
      
    • 复制整个目录(备份) shutil.copytree("C:a","C: ew_a")

    • 删除文件

        os.unlink("C:\b\1.txt")
        os.unlink("C:\b\121.txt")
      
    • 删除空文件夹

        try:
        	os.rmdir("C:\b\new_a")
        except Exception as ex:
        	print("错误信息:"+str(ex))#提示:错误信息,目录不是空的
      
    • 删除文件夹及内容

        shutil.rmtree("C:\b\new_a")
      
    • 移动文件

        shutil.move("C:\a\1.txt","C:\b")
      
    • 移动文件夹

        shutil.move("C:\a\c","C:\b")
      
    • 重命名文件

        shutil.move("C:\a\2.txt","C:\a\new2.txt")
      
    • 重命名文件夹

        shutil.move("C:\a\d","C:\a\new_d")
  • 相关阅读:
    老爹回忆录
    【日常】你这一辈子,有没有被保安拦住过

    【论文阅读】Deep Adversarial Subspace Clustering
    【日常】爱情故事应该是这样的
    maven打包遇到错误,Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test
    Thymeleaf th:include、th:replace引用
    IDEA中log4j.properties配置文件详解
    错误Uncaught Error: Bootstrap's JavaScript requires jQuery at bootstrap.min.js:6 错误详解
    ybatis 逆向工程 自动生成的mapper文件没有 主键方法
  • 原文地址:https://www.cnblogs.com/aloneindefeat/p/10726813.html
Copyright © 2020-2023  润新知