目录

执行系统命令

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("文件名")                        #判断是否为文件

我将"获取文件所在绝对路径"的函数写在别的文件夹下的文件中,我在本文件中调那个获取绝对路径的函数,那么获取的依然是我现在这个文件所在的绝对路径

  1. 将目录和文件合成一个路径 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模块操作文件与文件夹相关推荐

  1. ipython使用oracle,python的os模块(ipython,文件,目录,权限,管理)

    什么是os模块 os模块提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件.目录打交道,这时就离不了o ...

  2. python 使用os模块自动打开本地文件

    import os os.system('path')   #path为文件路径,本目录下可直接写文件名os 为本地模块不需再行安装 运行环境:python3.6 os.system('path')  ...

  3. python安装os模块_python的os模块(ipython,文件,目录,权限,管理)

    什么是os模块 os模块提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件.目录打交道,这时就离不了o ...

  4. Python的os模块常用文件夹的增删改查详解

    python常用os模块 增 os.makedirs("path\\目录") 用于递归创建目录 删 os.remove("path")用于删除指定路径(path ...

  5. Python 之 os 模块常用操作

    我们知道,使用 Python 内置的库函数, open() 函数可以对文本文件进行读写操作,那么这是在文件层面上的操作,如果说我们想对文件夹进行增.删.改.查时,又该如何去做呢? Python 拥有强 ...

  6. python不同层级模块的导入和文件的读写

    python不同层级模块的导入和文件的读写(2-201812103) 1 python 在不同层级目录import 模块的方法 2 python中文件的读写 1 python 在不同层级目录impor ...

  7. python的os模块批量获取目标路径下的文件名

    目前在做一个项目开发与变更专项稽核,但是所抽取的目标项目,样本所附电子版文件上千个,需要判断文档完整性,就需要所有文档名清单. python的os模块好像是对这块比较擅长,就去翻了下文档,试着写了,效 ...

  8. Python使用cx_Oracle模块操作Oracle数据库详解

    本文实例讲述了Python使用cx_Oracle模块操作Oracle数据库.分享给大家供大家参考,具体如下: ORACLE_SID参数,这个参数是操作系统中用到的,它是描述我们要默认连接的数据库实例, ...

  9. python中os模块详解_Python OS模块(常见文件操作示例)

    1 Python 常见文件操作示例 2. 3. os.path 模块中的路径名访问函数 4. 分隔 5. basename() 去掉目录路径 , 返回文件名 6. dirname() 去掉文件名 , ...

最新文章

  1. Python 常用内置函数map、zip、filter、reduce、enumerate
  2. 28 模态框拖动案例
  3. 用swing设计一个打地鼠小游戏_这7个风靡欧美的英语小游戏,学会胜过刷100道题!...
  4. 1092 回文字符串(51nod)
  5. 二分图匹配(Luogu3386)
  6. linux (centos7)安装3.7.8
  7. 在线文本纵向排版工具
  8. Oracle数据库基础知识(一)
  9. 九爷 带你了解 Memcache工作原理总结
  10. CSS实现盒子居中对齐的七种方法
  11. 关于SVN状态图标不显示的解决办法
  12. 怎么在国内创建谷歌账号_如何在Google相册中创建和共享协作相册
  13. Kafka及控制台【后台管理界面】部署
  14. win10装linux双系统6,win10如何安装linux双系统
  15. 中国人民银行征信中心登录时无法输入密码,控件安装无效
  16. 流行病学名词解释和简答题集锦
  17. 推送采购入库单据到金蝶时默认获取价格
  18. Ubuntu16.04安装联想LJ2600D打印机驱动程序
  19. AE制作全息风扇视频制作笔记
  20. Python爬虫Scrapy轮子工具

热门文章

  1. 分享个梦塔防辅助工具,自动化控制刷图升级脚本
  2. 二叉树的前中后序遍历(栈)(C++)
  3. coreldraw x8段落_CorelDRAW文本段落如何调整行距
  4. sift算法_论文和专利笔记:翻拍检测算法
  5. 正则表达式密码校验(由数字、字母、符号三者同时组合)
  6. VSCODE安装ChatGPT插件
  7. 猛犸Winform分页控件
  8. 根据日期计算星期几 -- 基姆拉尔森计算公式
  9. Python爬虫的起点!学爬虫从起点开始!
  10. 计算机左下角文档,基本操作 单击考试系统界面左下角上的Windows资源管理器图标(3页)-原创力文档...