Python 自动化常用操作大全

目录
  • 1. OS模块
  • 2. shutil模块
  • 3. globa模块
  • glob的几种用法

本文摘自微信公众号 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 glob

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

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 os

arm_path = glob.glob(os.path.join('./bbb', '*.txt'))
print(arm_path)
# 输出结果:
['./bbb\\shutil_test.txt', './bbb\\shutil_test22.txt']

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

(0)

相关推荐

  • Python 自动化常用操作大全

    目录 1. OS模块 2. shutil模块 3. globa模块 glob的几种用法 本文摘自微信公众号 GitPython:十个 Python 自动化常用操作.如有侵权,联系必删. 1. OS模块 导入:import os 1. 遍历文件夹 批量操作的前提就是对文件夹进行遍历,os.walk遍历文件夹后产生三个参数: 当前文件夹路径 包含文件夹的名称(列表形式) 包含文件名称(列表形式) 代码如下(按需求更改目标路径即可): for dirpath, dirnames, filenames

  • Python 自动化常用操作及glob使用大全

    目录 1. OS模块 2. shutil模块 3. globa模块 glob的几种用法 本文摘自微信公众号 GitPython:十个 Python 自动化常用操作.如有侵权,联系必删. 1. OS模块 导入:import os 1. 遍历文件夹 批量操作的前提就是对文件夹进行遍历,os.walk遍历文件夹后产生三个参数: 当前文件夹路径 包含文件夹的名称(列表形式) 包含文件名称(列表形式) 代码如下(按需求更改目标路径即可): for dirpath, dirnames, filenames

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

    一.遍历文件夹 代码如下,大家可以根据自己的路径进行修改 import os      for dirpath, dirnames, filenames in os.walk(r'C:\\Program Files (x86)'):     print(f'打开文件夹{dirpath}') # 当前文件夹路径      if dirnames:         print(dirnames) # 包含文件夹名称[列表形式]      if filenames:         print(fil

  • python字符串常规操作大全

    拼接字符串 使用"+"运算符可完成对多个字符串的拼接,"+"运算符可以连接多个字符串并产生一个字符串对象. 字符串不允许直接与其他类型数据拼接. 如果要用来和其他类型拼接,先用str()函数转换成字符串类型. str1 = 'Hello World' str2 = '你好,世界' print(str1+str2) num = 2021 print(str1+str2+str(num)) 计算字符串长度 由于不同的字符所占字节数不同,所以要计算字符串长度,需先了解字符

  • Python set常用操作函数集锦

    定义 set是一个无序且不重复的元素集合. 集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键.集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小), 用 for 循环迭代集合的成员.但是因为集合本身是无序的,不可以为集合创建索引或执行切片(slice)操作,也没有键(keys)可用来获取集合中元素的值. set和dict一样,只是没有value,相当于dict的key集合,由于dict的key是不重复的,且key是不可变对象因此set也有如下特性:

  • Python tkinter常用操作代码实例

    这篇文章主要介绍了Python tkinter常用操作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.创建单选框 form tkinter import * #创建窗口体 window = tk() #初始化组合件绑定 w1 = IntVar() #设置初始选择项1 w1.set(1) def Occupation(): lable = Label(text="请选择职业").place(x=20,y=15) m=1 fo

  • python自动化办公操作PPT的实现

    1.python-pptx模块简介 使用python操作PPT,需要使用的模块就是python-pptx,下面来对该模块做一个简单的介绍.这里提前做一个说明:python操作PPT,最好是我们提前设计好自己的一套样式,然后利用进行python进行内容的获取和填充(最主要的功能!),最好是不用使用python代码操作PPT的格式,格式的修改肯定不如我们直接在PPT中修改方便. 可以创建.修改PPT(.pptx)文件 需要单独安装,不包含在Python标准模块里 python-pptx官网介绍:ht

  • Python画图常用命令大全(详解)

    matplotlib官网 matplotlib库默认英文字体 添加黑体('SimHei')为绘图字体 代码: plt.rcParams['font.sans-serif']=['SimHei'] 1. 简单例程柱状图 基本方法:matplotlib.pyplot.bar() 基本参数:bar(x,y) 其他参数:颜色color        宽度width        透明度alpha 其他方法:图例legend()        横轴定义xlable()        纵轴定义ylable(

  • Python中常用操作字符串的函数与方法总结

    例如这样一个字符串 Python,它就是几个字符:P,y,t,h,o,n,排列起来.这种排列是非常严格的,不仅仅是字符本身,而且还有顺序,换言之,如果某个字符换了,就编程一个新字符串了:如果这些字符顺序发生变化了,也成为了一个新字符串. 在 Python 中,把像字符串这样的对象类型(后面还会冒出来类似的其它有这种特点的对象类型,比如列表),统称为序列.顾名思义,序列就是"有序排列". 比如水泊梁山的 108 个好汉(里面分明也有女的,难道女汉子是从这里来的吗?),就是一个"

  • python 自动化偷懒的四个实用操作

    自动化有助于解放人们的工作.不过说实话,即使对简单的任务自动化也需要时间和大量的依赖关系管理,而这可能非常复杂. Python对于几乎所有东西的交互都很友好.从发送HTTP请求.与API交互.到加载和管理数据库都是如此.因此Python是自动化的绝佳选择. 以下是用Python实现自动化的四项简单操作,可以帮助完成各种工作流程和项目. 1.自动移动鼠标,以便Skype / Lynk显示你在工作中处于活动状态 想象一下,在过去十分钟内,你一直在浏览最喜爱的社交媒体应用中的新闻.突然,Lynk软件中

随机推荐