python中操作文件的模块的方法总结


Posted in Python onFebruary 04, 2021

在python中操作文件算是一个基本操作,但是选对了模块会让我们的效率大大提升。本篇整理了两种模块的常用方法,分别是os模块和shutil模块。相信这两种模块大家在之间的学习中有所涉及,那么关于具体的文件操作部分,我们一起往下看看都有哪些方法和实例吧。

本教程操作环境:windows7系统、Python3版、Dell G3电脑。

Python对文件操作采用的统一步骤是:打开—操作—关闭。

一、python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法

1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()

2.返回指定目录下的所有文件和目录名:os.listdir()

3.函数用来删除一个文件:os.remove()

4.删除多个目录:os.removedirs(r"c:\python")

5.检验给出的路径是否是一个文件:os.path.isfile()

6.检验给出的路径是否是一个目录:os.path.isdir()

7.判断是否是绝对路径:os.path.isabs()

8.检验给出的路径是否真地存:os.path.exists()

9.返回一个路径的目录名和文件名:os.path.split()

二、文件综合操作实例

将文件夹下所有图片名称加上'_fc'

# -*- coding:utf-8 -*-
import re
import os
import time
#str.split(string)分割字符串
#'连接符'.join(list) 将列表组成字符串
def change_name(path):
global i
if not os.path.isdir(path) and not os.path.isfile(path):
return False
if os.path.isfile(path):
file_path = os.path.split(path) #分割出目录与文件
lists = file_path[1].split('.') #分割出文件与文件扩展名
file_ext = lists[-1] #取出后缀名(列表切片操作)
img_ext = ['bmp','jpeg','gif','psd','png','jpg']
if file_ext in img_ext:
os.rename(path,file_path[0]+'/'+lists[0]+'_fc.'+file_ext)
i+=1 #注意这里的i是一个陷阱
#或者
#img_ext = 'bmp|jpeg|gif|psd|png|jpg'
#if file_ext in img_ext:
# print('ok---'+file_ext)
elif os.path.isdir(path):
for x in os.listdir(path):
change_name(os.path.join(path,x)) #os.path.join()在路径处理上很有用
img_dir = 'D:\\xx\\xx\\images'
img_dir = img_dir.replace('\\','/')
start = time.time()
i = 0
change_name(img_dir)
c = time.time() - start
print('程序运行耗时:%0.2f'%(c))
print('总共处理了 %s 张图片'%(i))

实例扩展:

#! python 3
# -*- coding:utf-8 -*-
# Autor: GrayMac
import shutil
import os

basefileclass = 'basefile'
#sourcefile:源文件路径 fileclass:源文件夹 destinationfile:目标文件夹路径
def copy_file(sourcefile,fileclass,destinationfile):
 #遍历目录和子目录
 for filenames in os.listdir(sourcefile):
  #取得文件或文件名的绝对路径
  filepath = os.path.join(sourcefile,filenames)
  #判断是否为文件夹
  if os.path.isdir(filepath):
   if fileclass == basefileclass :
    copy_file(filepath,fileclass + '/' + filenames,destinationfile + '/' + filenames)
   else :
    copy_file(filepath,fileclass,destinationfile + '/' + filenames)
  #判断是否为文件
  elif os.path.isfile(filepath):
   print('Copy %s'% filepath +' To ' + destinationfile)
   #如果无文件夹则重新创建
   if not os.path.exists(destinationfile):
    os.makedirs(destinationfile)
   shutil.copy(filepath,destinationfile)
    
copy_file(sourcefile,basefileclass,destinationfile)

到此这篇关于python中操作文件的模块的方法总结的文章就介绍到这了,更多相关python中操作文件的模块有几种内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python socket.error: [Errno 98] Address already in use的原因和解决方法
Aug 25 Python
python实现批量修改文件名代码
Sep 10 Python
使用Python计算玩彩票赢钱概率
Jun 26 Python
python实现微信小程序用户登录、模板推送
Aug 28 Python
python实现数据清洗(缺失值与异常值处理)
Dec 02 Python
Pytorch之view及view_as使用详解
Dec 31 Python
Keras loss函数剖析
Jul 06 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
Sep 23 Python
Opencv+Python识别PCB板图片的步骤
Jan 07 Python
浅谈Python numpy创建空数组的问题
May 25 Python
python创建字典及相关管理操作
Apr 13 Python
python 单机五子棋对战游戏
Apr 28 Python
Python3利用openpyxl读写Excel文件的方法实例
Feb 03 #Python
python之openpyxl模块的安装和基本用法(excel管理)
Feb 03 #Python
python中time.ctime()实例用法
Feb 03 #Python
python中Array和DataFrame相互转换的实例讲解
Feb 03 #Python
利用Python过滤相似文本的简单方法示例
Feb 03 #Python
python time.strptime格式化实例详解
Feb 03 #Python
Python字符串的15个基本操作(小结)
Feb 03 #Python
You might like
php foreach 使用&(与运算符)引用赋值要注意的问题
2010/02/16 PHP
php简单提示框alert封装函数
2010/08/08 PHP
PHP实现多进程并行操作的详解(可做守护进程)
2013/06/18 PHP
28个JS验证函数收集
2010/03/02 Javascript
HTML颜色选择器实现代码
2010/11/23 Javascript
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
2013/10/29 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
简单谈谈javascript代码复用模式
2015/01/28 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
详解各版本React路由的跳转的方法
2018/05/10 Javascript
Vue使用Proxy监听所有接口状态的方法实现
2019/06/07 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
OpenLayers3实现对地图的基本操作
2020/09/28 Javascript
vue3中轻松实现switch功能组件的全过程
2021/01/07 Vue.js
python出现"IndentationError: unexpected indent"错误解决办法
2017/10/15 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
python如何处理程序无法打开
2020/06/16 Python
css3实现元素环绕中心点布局的方法示例
2019/01/15 HTML / CSS
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
阿玛尼美妆英国官网:Giorgio Armani Beauty英国
2019/03/28 全球购物
德国大型和小型家用电器网上商店:Energeto
2019/05/15 全球购物
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
如何写一封打动人心的求职信
2014/02/17 职场文书
土木工程师职业规划范文
2014/03/07 职场文书
老兵退伍标语
2014/10/07 职场文书
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技