python内置模块OS 如何打造SHELL端文件处理器

简介: python内置模块OS 如何打造SHELL端文件处理器

OS 模块

  • 在讲解包模块时我们提到通过 sys 模块进行查看全局包路径查看于注册,今天我们尝试了解下OS模块,这个模块主要作用就是打通程序于系统之间的通信。
  • 通过 help('modules') 我们能够发现 OS 是作为python的内置模块出现的。



26.png

带path

判断文件

 import os
 print(os.path.isfile('demo.txt'))
复制代码
  • 如果是文件则返回 True 否则返回 False

判断文件夹

 import os
 print(os.path.isdir('../os'))
复制代码
  • 其中参数我们传递一个路径,如果是文件夹返回 True 否则返回 False

判断文件是否存在

  • 这个应该是我们经常在脚本中使用的操作,存在我们则使用不存在则需要创建文件填充默认内容。
 import os 
 print(os.path.exists('ttttt.txt'))
复制代码
  • 同样如果存在则返回 True 否则返回 False

获取文件大小

  • 我们经常在服务器上通过 ls -al 查看文件信息,其中就包括文件大小这个属性,作为 python 内置的模块肯定也少不了相关的属性获取功能。
 import os 
 print(os.path.getsize('demo.txt'))
复制代码

获取路径及文件

27.png

之前在操作 Java 时经常需要获取文件所在目录,当时都是通过Java对象属性获取的,而 Python 中自动帮我们处理了。

获取绝对路径


不知道你有没有注意到上面我们获取脚本所在目录时通过 ../os 等方式,包括获取路径及文件章节中我们手动敲出来文件的完整路径,实际上通过python自带了。

 import os
 print(os.path.abspath('practice.py'))
复制代码


image.png

返回文件名

 import os
 print(os.path.basename('practice.py'))
复制代码

29.png

获取文件路径

30.png


  • 仅限我们传入了全路径的文件 dirname 才起作用,这个感觉有点鸡肋

路径拼接

  • 我们经常会出现路径地址的拼接。windows , linux 文件分隔符不一样,Java 中给我们提供了一个获取分隔符的变量,但是python 直接忽略掉分隔符了,直接给我们提供一个拼接的方法。
 import os 
 print(os.path.join('parent','child'))
复制代码


31.png

不带path

获取平台

  • 有的时候我们需要根据不同平台来执行不同的操纵,这个时候就需要获取到平台信息了。
 import os
 print(os.name)
复制代码

32.png

获取所有文件

  • 既然是模块肯定少不了我们常用的功能,之前提到过了我们经常在服务器上执行 ls -al .
1.  import os
2.  print(os.listdir)

image.png

当前工作路径

  • 很多时候我们不回直接在脚本路径执行脚本,往往都是通过绝对路径或者相对路径来执行脚本,有的时候脚本会依赖执行路径上的某些文件,所以获取执行脚本路径至关重要。


image.png


目录操作

  • 关于文件目录新建删除相信也很重要吧。下面我们来看看如何操作。
 import os 
 os.mkdir('test')
 print(os.getcwd()+'工作下的文件列表'+os.listdir())
 os.rmdir('test')
复制代码

35.png

重命名文件

 import os 
 os.rename(old,new)
复制代码

文件属性


image.png

  • 我们能够看到打印了很多属性。
属性 作用
st_mode 权限模式
st_ino 节点号
st_dev 驻留的设备
st_nlink 节点连接数
st_uid 拥有者用户
st_gid 所属组ID
st_size 文件大小
st_atime 上次访问时间
st_mtime 最后一次修改时间
st_ctime 操作系统报告的ctime


37.png

修改权限杀死进程

 os.chmod(file)
 os.get_terminal_size()
 os.kill(10884,signal.SIGKILL)
复制代码


打通shell


作为一个shell爱好者,我还是很喜欢使用shell 来实现的,尤其是在做系统初始化的时候这个时候没有python ,而shell 是linux 系统自带的,所以shell 脚本的时候还是很有必要的,我个人也是shell+python 相互辅佐的存在。我们知道shell 中直接 python xxx.py。 但是python 如何执行shell 呢?

 import os 
 name=os.system('ls -al') 
复制代码
  • 上面我们提到获取平台信息 os.name ,我们可以根据这个命令来通过 os.system('cmd') 指定不同系统的cmd 命令。
相关文章
|
3天前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
12 5
|
14天前
|
Java 程序员 开发者
Python的gc模块
Python的gc模块
|
17天前
|
数据采集 Web App开发 JavaScript
python-selenium模块详解!!!
Selenium 是一个强大的自动化测试工具,支持 Python 调用浏览器进行网页抓取。本文介绍了 Selenium 的安装、基本使用、元素定位、高级操作等内容。主要内容包括:发送请求、加载网页、元素定位、处理 Cookie、无头浏览器设置、页面等待、窗口和 iframe 切换等。通过示例代码帮助读者快速掌握 Selenium 的核心功能。
58 5
|
17天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy教程之SciPy模块列表13:单位类型。常量模块包含多种单位,如公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了如何使用`constants`模块获取零摄氏度对应的开尔文值(273.15)和华氏度与摄氏度的转换系数(0.5556)。
16 1
|
18天前
|
XML 前端开发 数据格式
超级详细的python中bs4模块详解
Beautiful Soup 是一个用于从网页中抓取数据的 Python 库,提供了简单易用的函数来处理导航、搜索和修改分析树。支持多种解析器,如 Python 标准库中的 HTML 解析器和更强大的 lxml 解析器。通过简单的代码即可实现复杂的数据抓取任务。本文介绍了 Beautiful Soup 的安装、基本使用、对象类型、文档树遍历和搜索方法,以及 CSS 选择器的使用。
48 1
|
15天前
|
Python
SciPy 教程 之 SciPy 模块列表 16
SciPy教程之SciPy模块列表16 - 单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了力学单位的使用,如牛顿、磅力和千克力等。
14 0
|
16天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy 教程之 SciPy 模块列表 15 - 功率单位。常量模块包含多种单位,如公制、质量、时间等。功率单位中,1 瓦特定义为 1 焦耳/秒,表示每秒转换或耗散的能量速率。示例代码展示了如何使用 `constants` 模块获取马力值(745.6998715822701)。
13 0
|
16天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy教程之SciPy模块列表15:单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。功率单位以瓦特(W)表示,1W=1J/s。示例代码展示了如何使用`constants`模块获取马力(hp)的值,结果为745.6998715822701。
15 0
|
17天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy 教程之 SciPy 模块列表 13 - 单位类型。常量模块包含多种单位:公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例:`constants.zero_Celsius` 返回 273.15 开尔文,`constants.degree_Fahrenheit` 返回 0.5555555555555556。
12 0
|
18天前
|
Python
SciPy 教程 之 SciPy 模块列表 11
SciPy教程之SciPy模块列表11:单位类型。常量模块包含公制单位、质量单位、角度换算、时间单位、长度单位、压强单位、体积单位、速度单位、温度单位、能量单位、功率单位、力学单位等。体积单位示例展示了不同体积单位的换算,如升、加仑、流体盎司、桶等。
14 0