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:\b\new_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")
python中对文件和文件夹的操作的更多相关文章
- Python中基本的读文件和简单数据处理
Python中基本的读文件和简单数据处理 暂无评论 DataQuest上面的免费课程(本文是Python基础课程部分),里面有些很基础的东西(csv文件读,字符串预处理等),发在这里做记录.涉及下面六 ...
- Python中yaml和json文件的读取和应用
Python对yaml和json文件的读取: yaml文件读取: 首先创建一个yaml文件test.yaml import yaml #引入包 f=open(path) #建立Python的文件 ...
- 41.Python中加载静态文件
在一个网页中,不仅仅只有一个html骨架,还需要css样式文件,js执行文件以及一些图片等.因此在DTL中加载静态文件时一个必须要解决的问题.在DTL中,使用static标签来加载静态文件.要使用st ...
- python中 .write 无法向文件写入内容
问题代码如下 links = open("new") out = open("out.txt","w+") for link in link ...
- 在python中逐行读取大文件
在我们日常工作中,难免会有处理日志文件的时候,当文件小的时候,基本不用当心什么,直接用file.read()或readlines()就可以了,但是如果是将一个10G大小的日志文件读取,即文件大于内存的 ...
- (数据科学学习手札126)Python中JSON结构数据的高效增删改操作
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在上一期文章中我们一起学习了在Python ...
- python中列表和元组以及字符串的操作
python中列表是非常好用的.不过有一些使用小细节还需要注意一下. tag[32:-4] 从index为32到tag的倒数第4个字符. 如果索引为32的值在倒数第4个字符的右边,那么将输出为空.只要 ...
- python中的zip、lambda、map操作
python 中有几个比较酷炫的操作,比如:zip.lambda.map 一.zip操作 zip字面意思:拉链.这么来记,把几个东西扔到一个包里,拉上拉链,就算打包好了.通俗点讲,就是把第1个参数.与 ...
- python中的包和文件夹的区别
python的模块,就不得不说包(package),package是module的集合,在一个package中有很多的module, 还是以之前的index.py与baiduHq.py模块为案例,说明 ...
- python中调用多线程加速处理文件
问题背景是这样的,我有一批需要处理的文件,对于每一个文件,都需要调用同一个函数进行处理,相当耗时 有没有加速的办法呢?当然有啦,比如说你将这些文件分成若干批,每一个批次都调用自己写的python脚本进 ...
随机推荐
- 解析搜狗实验室精简版数据:1、批量将.txt编码格式转化为utf8 2、解析提取数据
在搜狗实验室里下载了精简版的数据,解压后是一个文件,里面有很多个.txt文档,里面编码格式都是ASCII.现需要将这些编码格式转化为utf-8,以下是python3语言编写的脚本,一般只需改变path ...
- C# Thread.Jion()
什么是进程? 当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源. 而一个进程又是由多个线程所组成的. 什么是线程? 线程是程序中的一个执行流,每个线程都有自己的 ...
- Java 数据返回接口封装
enum StatusCode package com.lee.utils; public enum StatusCode { SUCCESS(20000, "成功"), FALL ...
- kafka 控制台命令
后台启动:bin/kafka-server-start.sh config/server.properties > /dev/null 2>&1 & 启动生产者:bin/k ...
- Python并发编程之线程池&进程池
引用 Python标准库为我们提供了threading和multiprocessing模块编写相应的多线程/多进程代码,但是当项目达到一定的规模,频繁创建/销毁进程或者线程是非常消耗资源的,这个时候我 ...
- Vue/Egg大型项目开发(一)搭建项目
项目Github地址:前端(https://github.com/14glwu/stuer)后端(https://github.com/14glwu/stuer-server) 项目线上预览:http ...
- ajaxToolkit 异步加载报 错误500的解决方法
设置IIS程序池的托管模式为经典
- 蒙德里安的梦想【状压DP】
求把N*M的棋盘分割成若干个1*2的的长方形,有多少种方案. 例如当N=2,M=4时,共有5种方案.当N=2,M=3时,共有3种方案. 如下图所示: 输入格式 输入包含多组测试用例. 每组测试用例占一 ...
- windows 10, v1903 正式版下载
一.简体中文版 cn_windows_10_business_editions_version_1903_x64_dvd_e001dd2c.iso sha1:bc6176bee6130 ...
- Redis集群(单机多实例)
Redis介绍 Redis是一个分布式缓存数据库服务器,提供基于内存访问的缓存服务,并且无论是在单服务器还是服务器集群上都有着较为灵活方便的扩展能力. 单个的Redis实例是单进程单线程的,由 ...