十个Python自动化常用操作,即拿即用


Posted in Python onMay 10, 2021

一、遍历文件夹

代码如下,大家可以根据自己的路径进行修改

import os
    
for dirpath, dirnames, filenames in os.walk(r'C:\\Program Files (x86)'):
    print(f'打开文件夹{dirpath}') # 当前文件夹路径 
    if dirnames:
        print(dirnames) # 包含文件夹名称[列表形式] 
    if filenames:
        print(filenames) # 包含文件名称[列表形式]
    print('-' * 10)

当手上的需求明确有获取给定路径各级文件夹下所有符合条件的文件,并进行相应的批处理操作时,即可使用 os.walk

二、目标路径是否是文件

有时我们需要判断一个目录下是否存在文件也可以使用os模块。

给定一个目标路径 path ,通过一行代码就能够判断这是文件还是文件夹路径

import os
 
path = 'xxx'
print(os.path.isfile(path))

三、获取路径中的文件名

os.path.basename 可以直接从绝对路径中获取最后的文件名,当然如果用传统的字符串切割方式也可以,即 path.split('\\')[-1]

import os
 
path = 'xxx'
print(os.path.basename)

四、创建文件夹

创建文件夹的代码非常常用,因为往往生成的新文件都希望有个新的文件夹存储,代码如下:

import os
 
dirpath = 'xxx'
os.mkdir(dirpath)

但是,如果希望创建的文件夹已经存在,再运行 os.mkdir() 则会报错而终止代码。为了避免这一情况的发生,可以在创建文件夹之前先判断文件夹是否存在。

用到的代码是 os.path.exists,只有当路径不存在(即  os.path.exists 返回的结果是 False 时),才会创建:

import os
 
dirpath = 'xxx'
if not os.path.exists(dirpath):
    os.mkdir(dirpath)

五、获取桌面路径

获取桌面路径也是非常常用的操作,可以使用os.path.join(os.path.expanduser("~"), 'Desktop') 获取桌面的绝对路径。

这样做的好处是可以把数据放在桌面上,在不同的电脑上都能调用代码对数据进行处理。如果是在一条电脑上把桌面路径固定在字符串中,则换一台电脑就必须修改桌面路径。代码如下:

import os
 
desktop_path = os.path.join(os.path.expanduser("~"), 'Desktop')
print(desktop_path)

当然把上面的代码包装成一个函数 GetDesktopPath() 需要时调用它会更加方便

import os
 
def GetDesktopPath():
    return os.path.join(os.path.expanduser("~"), 'Desktop')

六、重命名文件/文件夹

需要用到 os.rename() 方法,下面的代码示例中分别演示如何重命名文件和文件夹

import os
 
os.rename('practice.txt', 'practice_rename.txt')  # 重命名文件
os.rename('文件夹1', '文件夹2') # 重命名文件夹

七、批处理文件 - 1

除了前面的 os.walk 之外,有其他的 os 模块下方法可完成获取指定路径的全部或符合条件的文件(非遍历各级文件夹的需求),还可以使用下面两个代码第一种用到的方法是os.scandir(),使用如下:

import os
 
path = 'xxx'
for file in os.scandir(path): 
    print(file.name, file.path)

八、批处理文件 - 2

上面代码最后输出的是 给定路径下各内容的名字、绝对路径第二种方法使用 os.listdir(),它比 os.scandir() 简单一些,可直接调用输出名称而非路径:

import os 
 
path = 'xxx'
for file in os.listdir(path):
    print(file)

九、移动文件/文件夹

shutil也是经常出现在办公自动化场景中的模块,我常用的就是移动文件/文件夹

需要用到shutil.move 方法,下面的代码示例中分别演示如何移动文件和文件夹:

import shutil 
 
shutil.move(r'.\practice.txt', r'.\文件夹1/') 
shutil.move(r'.\practice.txt', r'.\文件夹1/new.txt')

注意到上面后两行代码的区别吗?前一行是将目标文件移动到目标文件夹里,而后一行,在将目标文件移动到目标文件夹里的同时,能够对其进行重命名

也就是说,如果我们需要移动某个或某些文件到新的文件夹,并且需重命名文件,则我们并不需要用 os.rename 先命名文件再用 shutil.move 将其移动的指定文件夹,而是可以用 shutil.move 一步到位

十、批处理文件 - 3

最后要介绍的是glob模块,也是办公自动化必须要掌握的一个模块,同样可以用于批处理文件。

glob 最重要的功能就是搜索获取同一级或者各子级下符合条件的文件(绝对路径),非常适合写批处理的代码。

有时候我们需要对大量文件进行相同操作,在写完针对一份文件的操作后,只需要加上几行代码,就可以完成批处理全部文件的工作。大致代码框架如下:

import glob
    
for file in glob.glob('**/*', recursive=True): 
    print(file)

glob.glob() 是一个非常重要的方法,能够获取给定路径下文件的绝对路径,并且接受「通配符」搜索,大大拓宽了灵活程度,* 表示任意字符长度,**/* 的使用表示用通配符指代给定路径下的任何一层,recursive 参数允许遍历搜索。

到此这篇关于十个Python自动化常用操作,即拿即用的文章就介绍到这了,更多相关Python自动化操作内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python3实现从指定路径查找文件的方法
May 22 Python
python显示生日是星期几的方法
May 27 Python
详解Python的Django框架中的模版继承
Jul 16 Python
举例讲解如何在Python编程中进行迭代和遍历
Jan 19 Python
python定时利用QQ邮件发送天气预报的实例
Nov 17 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
Dec 28 Python
python3.5 email实现发送邮件功能
May 22 Python
Python爬取qq空间说说的实例代码
Aug 17 Python
使用k8s部署Django项目的方法步骤
Jan 14 Python
python解压TAR文件至指定文件夹的实例
Jun 10 Python
Pytorch数据拼接与拆分操作实现图解
Apr 30 Python
Python可视化学习之seaborn调色盘
Feb 24 Python
Django开发RESTful API实现增删改查(入门级)
May 10 #Python
Python中X[:,0]和X[:,1]的用法
May 10 #Python
Python Django搭建文件下载服务器的实现
详解python的内存分配机制
May 10 #Python
python-for x in range的用法(注意要点、细节)
May 10 #Python
Django显示可视化图表的实践
python 中[0]*2与0*2的区别说明
May 10 #Python
You might like
php mssql 日期出现中文字符的解决方法
2009/03/10 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
javascript中的对象和数组的应用技巧
2007/01/07 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
2011/10/21 Javascript
JSON 数据格式介绍
2012/01/13 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
2016/11/29 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
利用JavaScript的%做隔行换色的实例
2017/11/25 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
canvas使用注意点总结
2013/07/19 HTML / CSS
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
HTML5拖拽的简单实例
2016/05/30 HTML / CSS
爱他美官方海外旗舰店:Aptamil奶粉
2017/12/22 全球购物
项目副经理岗位职责
2013/12/30 职场文书
经理管理专业毕业自荐书范文
2014/02/12 职场文书
竞选班干部演讲稿
2014/04/24 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
2014年导购员工作总结
2014/11/18 职场文书
水浒传读书笔记
2015/06/25 职场文书
2016年万圣节活动总结
2016/04/05 职场文书
SpringAop日志找不到方法的处理
2021/06/21 Java/Android
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers