python之os模块操作文件与文件夹
目录
执行系统命令
1、os模块
OS操作文件与文件夹
运行脚本程序
2、ShellExecute函数
相对路径打开文件
3、subprocess模块
打开新的cmd窗口并传入命令
用通配符的方式判断文件是否存在目录中
执行系统命令
1、os模块
OS模块是Python标准库中的一个用于访问操作系统功能的模块。使用OS模块中提供的接口,可以实现跨平台访问。常用操作:
- 对目录、文件、文件夹的操作
- 运行脚本程序
接下来是OS对文件与文件夹的操作
OS操作文件与文件夹
首先需要导入OS模块, import os
增
os.mkdir("hello") #在当前目录中创建一个"hello"文件夹
删
- os.remove('文件或文件夹名') #删除文件或文件夹(删除文件夹可能会提示拒绝访问)
- os.rmdir('文件夹名') #删除文件夹(成功删除)
改
- os.rename('原文件/夹名', '新的文件/夹名') #修改文件或文件夹的名字
- os.chdir('../../') #切换路径,在当前路径基础上往后退两级
- os.replace("源文件","目标文件") #移动文件
查
- os.getcwd() #获取当前的绝对路径
- os.path.abspath("") #获取当前的绝对路径
- os.listdir() #用列表的方式显示当前目录中所有的文件和文件夹
- os.path.exists('文件或文件夹') #判断当前目录中文件或者文件夹是否存在,存在则返回True,否则返回False
- os.path.isdir("文件夹名") #判断是否为文件夹
- os.path.isfile("文件名") #判断是否为文件
我将"获取文件所在绝对路径"的函数写在别的文件夹下的文件中,我在本文件中调那个获取绝对路径的函数,那么获取的依然是我现在这个文件所在的绝对路径
- 将目录和文件合成一个路径 os.path.join
import os
print(os.path.join(r'c:\e\f', 'pocs'))
运行脚本程序
os模块中的system()函数可以方便地运行其他程序或者脚本,相当于直接用鼠标双击程序。模式如下:
os.system(command)
import os
os.system('ipconfig') #执行cmd命令
os.system('1.html') #默认浏览器打开1.html文件
os.system('xx.exe') #运行exe程序
os.system('xx.py -u http://1.1.1.1 ') #运行python脚本
os.system执行的结果会直接在控制台输出,且无法屏蔽输出。如果用变量接收执行的结果的话,其返回为状态码,0表示指令成功执行,1表示失败,256表示没有返回结果,适用于系统命令不需要输出内容的场景。
2、ShellExecute函数
只能用来启动应用程序或脚本。
除了使用os.system()函数外,还可以使用win32api模块中的ShellExecute()函数来运行其他程序,格式如下:
ShellExecute(hwnd, op, file, args, dir, show)
- hwnd: 父窗口的句柄,如果没有父窗口,则为0
- op : 要运行的操作,为open,print或者为空
- file: 要运行的程序,或者打开的脚本
- args: 要向程序传递的参数,如果打开的是文件则为空
- dir : 程序初始化的目录
- show: 是否显示窗口,1为显示,0为不显示
# pip install pywin32
import win32api
win32api.ShellExecute(0, 'open', 'notepad.exe', '', '', 1) # 前台打开
win32api.ShellExecute(0, 'open', 'notepad.exe', '', '', 0) # 后台执行
win32api.ShellExecute(0, 'open', 'notepad.exe', '1.txt', '', 1) # 使用notepad打开文件
win32api.ShellExecute(0, 'open', 'http://www.sohu.com', '', '', 1) # 使用默认浏览器打开该网址
win32api.ShellExecute(0, 'open', 'D:\\Opera.mp3', '', '', 1) # 播放视频
win32api.ShellExecute(0, 'open', 'D:\\hello.py', '', '', 1) # 运行程序
win32api.ShellExecute(0, 'open', '2.html', '', '', 1) # 打放html文件
ps:
当os.system正在使用某个文件时,再使用os.system则会提示程序正在占用。此时使用ShellExecute()函数则能够继续操作该文件
又比如使用os.system打开了某文件时,必须要关闭了文件,程序才会往下执行,否则程序就卡在那(如果同类型的文件已经打开了则不会卡,会继续往下执行)。说明os.system会占用当前程序。
相对路径打开文件
有时候需要以相对路径打开文件,如下result文件夹和test.py文件同时位于ray目录下,此时test.py要打开当前同目录result下的4.html文件
方法如下
import os
filename = r".\result.\4.html"
os.system(filename)
3、subprocess模块
subprocess模块是python从2.4版本开始引入的模块,主要用来取代 一些旧的模块方法,如os.system、os.spawn、os.popen、commands.*等。官方推荐使用该模块执行系统命令
该函数的好处在于可将命令执行的结果赋值给变量,方便处理
from subprocess import PIPE, Popen# 返回的是 Popen 实例对象
proc = Popen('nslookup www.baidu.com', # cmd特定的查询空间的命令stdin=None, # 标准输入 键盘stdout=PIPE, # -1 标准输出(演示器、终端) 保存到管道中以便进行操作stderr=PIPE, # 标准错误,保存到管道shell=True)
outinfo, errinfo = proc.communicate()
info = outinfo.decode('gbk')
print(info)
打开新的cmd窗口并传入命令
此命令会打开新的cmd窗口并向该窗口传入"ping baidu.com"的命令。此操作不是阻塞的,是同步进行的。但是打开窗口只能传递一个参数进去。
import os
os.system("cmd/c start ping baidu.com")
print(111)
用通配符的方式判断文件是否存在目录中
如下,我们只输入公司名,然后判断当前目录是否存在带这个公司名的文件。这里使用fnmatch找到特定的文件
Python之文件查找模块fnmatch、glob及实际案例 - 腾讯云开发者社区-腾讯云
target = "北京xx技术有限公司"
import os,fnmatch
for name in os.listdir():if fnmatch.fnmatch(name,"*%s*"%(target)):print(name)
python之os模块操作文件与文件夹相关推荐
- ipython使用oracle,python的os模块(ipython,文件,目录,权限,管理)
什么是os模块 os模块提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件.目录打交道,这时就离不了o ...
- python 使用os模块自动打开本地文件
import os os.system('path') #path为文件路径,本目录下可直接写文件名os 为本地模块不需再行安装 运行环境:python3.6 os.system('path') ...
- python安装os模块_python的os模块(ipython,文件,目录,权限,管理)
什么是os模块 os模块提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件.目录打交道,这时就离不了o ...
- Python的os模块常用文件夹的增删改查详解
python常用os模块 增 os.makedirs("path\\目录") 用于递归创建目录 删 os.remove("path")用于删除指定路径(path ...
- Python 之 os 模块常用操作
我们知道,使用 Python 内置的库函数, open() 函数可以对文本文件进行读写操作,那么这是在文件层面上的操作,如果说我们想对文件夹进行增.删.改.查时,又该如何去做呢? Python 拥有强 ...
- python不同层级模块的导入和文件的读写
python不同层级模块的导入和文件的读写(2-201812103) 1 python 在不同层级目录import 模块的方法 2 python中文件的读写 1 python 在不同层级目录impor ...
- python的os模块批量获取目标路径下的文件名
目前在做一个项目开发与变更专项稽核,但是所抽取的目标项目,样本所附电子版文件上千个,需要判断文档完整性,就需要所有文档名清单. python的os模块好像是对这块比较擅长,就去翻了下文档,试着写了,效 ...
- Python使用cx_Oracle模块操作Oracle数据库详解
本文实例讲述了Python使用cx_Oracle模块操作Oracle数据库.分享给大家供大家参考,具体如下: ORACLE_SID参数,这个参数是操作系统中用到的,它是描述我们要默认连接的数据库实例, ...
- python中os模块详解_Python OS模块(常见文件操作示例)
1 Python 常见文件操作示例 2. 3. os.path 模块中的路径名访问函数 4. 分隔 5. basename() 去掉目录路径 , 返回文件名 6. dirname() 去掉文件名 , ...
最新文章
- Python 常用内置函数map、zip、filter、reduce、enumerate
- 28 模态框拖动案例
- 用swing设计一个打地鼠小游戏_这7个风靡欧美的英语小游戏,学会胜过刷100道题!...
- 1092 回文字符串(51nod)
- 二分图匹配(Luogu3386)
- linux (centos7)安装3.7.8
- 在线文本纵向排版工具
- Oracle数据库基础知识(一)
- 九爷 带你了解 Memcache工作原理总结
- CSS实现盒子居中对齐的七种方法
- 关于SVN状态图标不显示的解决办法
- 怎么在国内创建谷歌账号_如何在Google相册中创建和共享协作相册
- Kafka及控制台【后台管理界面】部署
- win10装linux双系统6,win10如何安装linux双系统
- 中国人民银行征信中心登录时无法输入密码,控件安装无效
- 流行病学名词解释和简答题集锦
- 推送采购入库单据到金蝶时默认获取价格
- Ubuntu16.04安装联想LJ2600D打印机驱动程序
- AE制作全息风扇视频制作笔记
- Python爬虫Scrapy轮子工具
热门文章
- 分享个梦塔防辅助工具,自动化控制刷图升级脚本
- 二叉树的前中后序遍历(栈)(C++)
- coreldraw x8段落_CorelDRAW文本段落如何调整行距
- sift算法_论文和专利笔记:翻拍检测算法
- 正则表达式密码校验(由数字、字母、符号三者同时组合)
- VSCODE安装ChatGPT插件
- 猛犸Winform分页控件
- 根据日期计算星期几 -- 基姆拉尔森计算公式
- Python爬虫的起点!学爬虫从起点开始!
- 计算机左下角文档,基本操作 单击考试系统界面左下角上的Windows资源管理器图标(3页)-原创力文档...