zoukankan      html  css  js  c++  java
  • 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")
  • 相关阅读:
    【转】用Linux命令行获取本机外网IP地址
    【转】5 Best Place to Learn Linux – Linux Tutorial Sites
    【转】linux shell 逻辑运算符、逻辑表达式详解
    ftp
    修改/创建计算机用户名、密码
    SCRIPT429: Automation 服务器不能创建对象
    Tomcat 加载外部dll时如何配置
    查看电脑MAC地址
    访问windows共享无法分配内存问题解决
    打包
  • 原文地址:https://www.cnblogs.com/aloneindefeat/p/10726813.html
Copyright © 2011-2022 走看看