本文摘自微信公众号 GitPython:十个 Python 自动化常用操作。如有侵权,联系必删。

1. OS模块

  • 导入:import os

1. 遍历文件夹

  • 批量操作的前提就是对文件夹进行遍历os.walk遍历文件夹后产生三个参数:

    • 当前文件夹路径
    • 包含文件夹的名称(列表形式)
    • 包含文件名称(列表形式)
  • 代码如下(按需求更改目标路径即可):
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)# 输出结果:
打开文件夹C:\\Program Files (x86)
['360', 'BirdWallpaper', 'Common Files', 'erl5.9.3.1', 'InstallShield Installation Information', 'Intel', 'Internet Explorer', 'IQIYI Video', 'Java', 'Kingsoft', 'Microsoft Office', 'Microsoft.NET', 'MSBuild', 'NetSarang', 'NVIDIA Corporation', 'Reference Assemblies', 'Sangfor', 'Sinfor', 'SogouInput', 'svnfile', 'Tencent', 'UltraEdit', 'VMware', 'Windows Defender', 'Windows Mail', 'Windows Media Player', 'Windows Multimedia Platform', 'Windows NT', 'Windows Photo Viewer', 'Windows Portable Devices', 'Windows Sidebar', 'WindowsPowerShell', 'Youdao']
['desktop.ini', '微软常用运行库合集_2019.07.20_X64.exe']
----------
打开文件夹C:\\Program Files (x86)\360
['360bizhi', '360Safe', '360SD']
----------
。。。。。。

2. 目标路径是否是文件

  • 给定一个目标路径path,通过一行代码判断该路径是文件夹还是文件夹路径,使用os.path.isfile(path),返回TrueFalse
path = r'C:\Users\Administrator\Desktop\doc\note.md'
print(os.path.isfile(path))  # True
path = 'xxx'
print(os.path.isfile(path))  # False

3. 获取路径中的文件名

  • os模块方式os.path.basename可以直接从绝对路径中获取最后的文件名
path = r'C:\Users\Administrator\Desktop\doc\note.md'
print(os.path.basename(path))
print(path.split('\\')[-1])
# note.md
  • 切割字符串方式path.split('\\')[-1]
path = r'C:\Users\Administrator\Desktop\doc\note.md'
print(path.split('\\')[-1])
# note.md

4. 创建文件夹

  • 创建文件夹的代码非常常用,因为往往生成的新文件都希望有个新的文件夹存储。
dirpath = 'xxx'
os.mkdir(dirpath)
# 这样会在该`py`文件同一目录下生成名为`xxx`的文件夹
  • 但如果存在同名文件夹会报错FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'xxx',为了避免报错可在创建前先判断是否存在:
dirpath = 'xxx'
if not os.path.exists(dirpath):os.mkdir(dirpath)

5. 获取桌面路径

  • 获取桌面路径非常常用,可使用os.path.join(os.path.expanduser("~"), 'Desktop')获取桌面的绝对路径

  • 好处:把数据放到桌面上,在不同的电脑上都能调用代码对数据进行处理。

  • 如果是在一台电脑上把桌面路径固定在字符串中,则换一台电脑就必须修改桌面路径

desktop_path = os.path.join(os.path.expanduser("~"), 'Desktop')
print(desktop_path)
# C:\Users\Administrator\Desktop
  • 封装成一个函数进行调用
def get_desktop_path():return os.path.join(os.path.expanduser("~"), 'Desktop')

6. 重命名文件/文件夹

  • 使用os.rename()方法
os.rename('xxx', 'xxx2')  # 重命名文件夹
os.rename('test.txt', 'test2.txt')  # 重命名文件

7. 批处理文件 - 1

  • 除了os.walk外,在非遍历各级文件夹时,还可用os.scandir()获取指定路径的全部或符合条件的文件,使用for循环,获取循环变量的namepath
path = '.'
for file in os.scandir(path):print(file.name, file.path)# 输出结果:
aaa .\aaa
os模块.py .\os模块.py
test2.txt .\test2.txt
xxx2 .\xxx2
# 如果path是绝对路径,下边打印出来的也是绝对路径

8. 批处理文件 - 2

  • 获取指定路径的全部或符合条件的文件第二种方法使用os.listdir()获取文件名:
path = r'F:\python\python-basic\tips\自动化常用操作'
for file in os.listdir(path):print(file)# 输出结果:
aaa
os模块.py
test2.txt
xxx2

2. shutil模块

9. 移动文件/文件夹(并重命名)

  • shutil常用于 移动文件/文件夹,使用shutil.move()方法:
import shutil# 把当前目录下的shutil_test.txt文件移动到当前目录的bbb文件夹下
shutil.move(r'.\shutil_test.txt', r'.\bbb/')# 把当前目录下的shutil_test2.txt文件移动到当前目录bbb文件夹下,并重命名为shutil_test22.txt
shutil.move(r'.\shutil_test2.txt', r'.\bbb/shutil_test22.txt')

3. globa模块

10. 批处理文件 - 3

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

  • 对大量文件进行相同操作,在写完针对一份文件的操作后,只需加上几行代码就可以完成批处理全部文件的工作

  • 参数*表示任意字符长度;**/*表示用通配符指代给定路径下的任何一层;recursiveTrue表示允许遍历搜索,默认为False

import globfor file in glob.glob('**/*', recursive=True):print(file)# 输出结果:
aaa
bbb
glob模块.py
os模块.py
shutil模块.py
test2.txt
xxx2
bbb\shutil_test.txt
bbb\shutil_test22.txt
  • glob可获取指定路径下文件的绝对路径,也可接受 通配符 搜索,拓宽了灵活程度。

glob的几种用法

  • glob 最重要的功能是 搜索获取同一级或各子级下符合条件的文件(绝对路径)

  • 导入:import glob

  • demo1:获取当前目录下所有文件和文件夹及其文件

for file in glob.glob('**/*', recursive=True):print(file)# 输出结果:
aaa
bbb
glob模块.py
os模块.py
shutil模块.py
test2.txt
xxx2
bbb\shutil_test.txt
bbb\shutil_test22.txt
bbb\w
bbb\w\aaaa.txt
bbb\w\s
bbb\w\s\i.txt
  • demo2:获取当前目录bbb下的文件及其一层子文件
for file in glob.glob('./bbb/*'):print(file)# 输出结果:
./bbb\shutil_test.txt
./bbb\shutil_test22.txt
./bbb\w
  • demo3:获取当前目录bbb下所有文件和文件夹及其文件
for file in glob.glob('./bbb/**', recursive=True):print(file)# 输出结果:
./bbb\
./bbb\shutil_test.txt
./bbb\shutil_test22.txt
./bbb\w
./bbb\w\aaaa.txt
./bbb\w\s
./bbb\w\s\i.txt
  • demo4:获取当前目录bbb下嵌套两层内的文件和文件夹
for file in glob.glob('./bbb' + '/*/*'):print(file)# 输出结果:
./bbb\w\aaaa.txt
./bbb\w\s
  • demo5:遍历包含指定名称的文件和文件夹
import osarm_path = glob.glob(os.path.join('./bbb', '*.txt'))
print(arm_path)
# 输出结果:
['./bbb\\shutil_test.txt', './bbb\\shutil_test22.txt']

十个 Python 自动化常用操作相关推荐

  1. python列表常用操作函数_Python入门——列表常用操作

    Python列表常用操作 准备 控制台输入ipython parallels@parallels-vm:~$ ipythonPython 2.7.12 (default, Dec 4 2017, 14 ...

  2. python numpy常用操作、Numpy 多维数组、矩阵相乘、矩阵乘以向量

    python numpy常用操作 Numpy基本操作 # 导入numpy import numpy as np # 生成numpy数组 x = np.array([1.0, 2.0, 3.0]) pr ...

  3. 整理了十个Python自动化操作

    一.遍历文件夹 批量操作的前提就是对文件夹进行遍历,使用os模块可以轻松的遍历文件夹,os.walk 遍历后产生三个参数: " 当前文件夹路径 包含文件夹名称[列表形式] 包含文件名称[列表 ...

  4. python列表常用の操作

    python列表常用の方法 列表操作: 1.创建列表: 向列表添加元素: [i for i in range(1,10)]列表解析式: #将 1-10 每个数乘以 2 放入一个列表: >> ...

  5. python自动化word操作

    python自动化之word 操作 研发逻辑就是讲解逻辑,一般从上往下,遵循:What - Why - How 或 Why - What - How 思路:这章节学的有点晕,比较多要记住的,当然搞会了 ...

  6. python自动化常用数字_python 自动化之路 day 01.1 数据类型

    一.变量 二.数据类型 2.1 什么是数据类型及数据类型分类 2.2 标准数据类型: 2.2.1 数字 2.2.1.1 整型: 2.2.1.2 长整型long: 2.2.1.3 布尔bool: 2.2 ...

  7. Python列表常用操作,浅拷贝及深拷贝

    先看一些基本的操作 names = ["4ZhangYang", "#!Guyun","xXiangPeng",["alex&qu ...

  8. python 列表 常用操作 列表的循环遍历

    目录 列表格式 常用操作 查找 判断是否存在 添加数据 删除数据 修改数据 复制 列表的循环遍历 列表嵌套 列表为可变类型数据 列表格式 [数据1,数据2,数据3,.......] 注:列表可以一次性 ...

  9. 真香!精心整理了 100+Python 字符串常用操作

    来源丨萝卜大杂烩 作者丨周萝卜 字符串作为平时使用最多的数据类型,其常用的操作我们还是很有必要熟记于心的,本文整理了多种字符串的操作的案例,还是非常用心,记得点赞收藏~ 字符串切片操作 test = ...

  10. python自动化常用模块_Python自动化 【第五篇】:Python基础-常用模块

    目录 模块介绍 time和datetime模块 random os sys shutil json和pickle shelve xml处理 yaml处理 configparser hashlib re ...

最新文章

  1. 微软发话:Win10杀毒软件要优先选它
  2. spring事务配置,声明式事务管理和基于@Transactional注解的使用
  3. nginx location 在配置中的优先级
  4. 标定中是什么意思_机械加工中,测头有什么作用呢?
  5. 使用云效在阿里云上进行一站式开发运维
  6. 单元测试反模式,完整列表
  7. View的三大流程之View的测量
  8. 快速简易封装歌词文件
  9. opencv_3.4.2_vc14_vc15.exe下载
  10. 【实战】Docker容器资源管理
  11. windows系统安装curl
  12. 第一篇:初识信息系统监理工程师
  13. 谈谈MATLAB数字滤波器频域响应
  14. python爬取bilibili弹幕_python 爬取bilibili 视频弹幕
  15. mc服务器bug修复,我的世界服务器BUG解决办法大全
  16. 在html中写年月,Javascript+html:select年月日(出生日期)的写法
  17. 上对不起父母,下对不起孩子,你却自以为美好
  18. Win10杀毒软件大PK:Defender垫底 卡巴/小红伞第一
  19. OD-火星文计算(Python)
  20. 简单编程(六)使用for循环语句 编写程序1+2+3+...........+100

热门文章

  1. 使用selenium自动登录126/163邮箱并自动发送邮件
  2. c# 中崎_C#版OPOS打印(基于北洋OPOS SDK二次开发包,支持EPSON和北洋、佳博、商祺等支持标准ESC/POS指令的POS打印机) | 学步园...
  3. 如何用python爬取下载微博视频_Python通过抓包和使用cookie爬取微博完全讲解(附视频)-阿里云开发者社区...
  4. chm sharp安卓版_CHM 阅读器
  5. 2021年全国安全生产月 安全知识网络竞赛 链工宝“测测你的安全力”题库 三百多道真题含答案
  6. Python 鸡肋面试题总结
  7. 标准盒模型和IE盒模型
  8. Linux下最好用的中文输入法 scim
  9. Scala入门系列(十二):隐式转换
  10. 三分钟告诉你什么是三层交换机!