十个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 相关文章推荐
简单的Python的curses库使用教程
Apr 11 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 Python
Python排序算法之选择排序定义与用法示例
Apr 29 Python
python中sys.argv函数精简概括
Jul 08 Python
浅谈Django的缓存机制
Aug 23 Python
Python实现多线程/多进程的TCP服务器
Sep 03 Python
基于python解线性矩阵方程(numpy中的matrix类)
Oct 21 Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 Python
Python 下载及安装详细步骤
Nov 04 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
解决import tensorflow as tf 出错的原因
Apr 16 Python
python实现网络五子棋
Apr 11 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
古巴咖啡 Cubita琥爵咖啡 独特的加勒比海风味咖啡
2021/03/06 新手入门
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
详谈PHP编码转换问题
2015/07/28 PHP
PHP实现更改hosts文件的方法示例
2017/08/08 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
Javascript Global对象
2009/08/13 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
文字垂直滚动之javascript代码
2015/07/29 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
2017/12/24 jQuery
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
2018/10/25 Javascript
js常见遍历操作小结
2019/06/06 Javascript
基于layui轮播图满屏是高度自适应的解决方法
2019/09/16 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
python发送HTTP请求的方法小结
2015/07/08 Python
深入源码解析Python中的对象与类型
2015/12/11 Python
python实现员工管理系统
2018/01/11 Python
基于树莓派的语音对话机器人
2019/06/17 Python
Python 实现还原已撤回的微信消息
2019/06/18 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
图解python全局变量与局部变量相关知识
2019/11/02 Python
python使用OpenCV模块实现图像的融合示例代码
2020/04/10 Python
Python中random模块常用方法的使用教程
2020/10/04 Python
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
美国知名平价彩妆品牌:e.l.f. Cosmetics
2017/11/20 全球购物
全球最大化妆品零售网站:SkinStore
2020/10/24 全球购物
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
驾驶员安全责任书范本
2014/07/24 职场文书
企业宣传稿范文
2015/07/23 职场文书
担保书格式范文
2015/09/22 职场文书
Python爬虫入门案例之回车桌面壁纸网美女图片采集
2021/10/16 Python
CSS浮动引起的高度塌陷问题
2022/08/05 HTML / CSS
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android