python自动化办公
python自动化办公中必掌握的模块---os模块,os模块是python内置库,可以直接与操作系统进行对接
1、os模块调用可执行文件
python调用shell脚本或者调用系统命令,有两种方法,一是os.system(cmd),二是os.popen(cmd)
import os os.system('regedit.exe') # 可以调用系统的一些命令,regedit是注册表的命令,打开注册表,类似win+r,输入regedit.exe os.system('services.msc') # 打开服务管理里, 类似win+r,输入services.msc os.system('cmd.exe') # 直接在pycharm中打开cmd os.system('ping www.baidu.com') # 调用ping命令
直接调用可执行文件,比如调用qq(属性+可执行文件的地址)
# 直接调用可执行文件 os.startfile("C:Program Files (x86)TencentQQBinQQScLauncher.exe")
2、os模块操作文件和目录
os模块的几个属性
print(os.name) # 返回操作系统的相关信息,window返回nt,Linux返回不同 print(os.sep) # 返回文件路径分隔符,操作系统不一样,返回内容不一样,wind的分割符是,Linux是/ print(os.linesep) print(repr(os.linesep)) # ' ', 返回当前平台使用的行终止符,win是‘ ’, linux是 ,mac是
os模块操作文件与目录
print(os.getcwd()) 改变工作目录 os.chdir('D:zgzengpychon爬虫') print(os.getcwd()) # D:zgzengpychon爬虫 os.chdir('D:zgzengpychon基础python自动化') print(os.getcwd()) # D:zgzengpychon基础python自动化 # 创建目录 os.mkdir('D:zgzeng2') # 在指定的路径下创建目录 os.makedirs('D:zgzeng2zgzeng3zgzeng4') # 在指定的路径下创建多级目录 # 删除目录 os.rmdir('D:zgzeng2zgzeng3zgzeng4') os.removedirs('Dzgzeng2zgzeng3zgzeng4')
# 重命名
os.rename('directory_name', 'new_name')
# 返回指定目录下的文件与文件夹
print(os.listdir(r'D:zgzengpychon基础python自动化')) # ['1-os模块调用可执行文件.py', '2-os模块操作文件和目录.py']
3.os.path模块操作
# 判断路径是否为绝对路径 print(os.path.isabs(r"D:zgzengpychon基础python自动化a.txt")) # True # 判断路径是否为目录 print(os.path.isdir(r"D:zgzengpychon基础python自动化a.txt")) # False # 判断路径是否为文件 print(os.path.isfile(r"D:zgzengpychon基础python自动化a.txt")) # True # 判断文件是否存在 print(os.path.exists(r"D:zgzengpychon基础python自动化a.txt")) # True # 返回当前文件的大小,如果文件不存在就会报错 print(os.path.getsize('a.txt')) # 17 返回字节数量 # 返回当前文件的绝对路径 print(os.path.abspath('a.txt')) # D:zgzengpychon基础python自动化a.txt # 返回返回文件的路径 print(os.path.dirname(r'D:zgzengpychon基础python自动化a.txt)')) # D:zgzengpychon基础python自动化 # 返回当前时间 print(os.path.getctime('a.txt')) # 1599468546.5112321 时间戳 # 返回文件的最近一次访问时间 print(os.path.getatime('a.txt')) # 1599468639.3794036 返回时间戳 # 返回文件的最近修改时间 print(os.path.getmtime('a.txt')) # 1599468639.3794036 返回时间戳
path = os.path.abspath('a.txt') # 返回一个元组,将目录与文件分开 print(os.path.split(path)) # ('D:\zgzeng\pychon基础\python自动化', 'a.txt') 以\分割 print(os.path.splitext(path)) # ('D:\zgzeng\pychon基础\python自动化\a', '.txt') 拿到后缀
print(os.path.join('a', 'b', 'c')) # 把文件和目录合成一个路径 ac
4、walk进行遍历
import os path = os.getcwd() # 遍历当当前路径 tuple_files = os.walk(path) print(tuple_files) # <generator object walk at 0x010154F8> 拿到的是一个生成器对象 # dirpath 指定目录路径 # dirnames 目录下所有的文件夹 # filenames 目录下所有文件 for dirpath, dirnames, filenames in tuple_files: for dir in dirnames: print(dir) print(os.path.join(dirpath, dir)) # pass for file in filenames: print(file) print(os.path.join(dirpath, file)) # pass