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 命令。
相关文章
|
Shell
Shell 文件包含
10月更文挑战第5天
223 4
|
9月前
|
安全 Python
告别 os.path 的繁琐:拥抱 Python 的 pathlib
告别 os.path 的繁琐:拥抱 Python 的 pathlib
580 6
|
人工智能 API Python
掌握 Python 文件处理、并行处理和装饰器
本文介绍了 Python 在文件处理、并行处理以及高级功能(如装饰器、Lambda 函数和推导式)的应用。第一部分讲解了文件的基本操作、读写方法及处理大型文件的技巧,并演示了使用 Pandas 处理结构化数据的方式。第二部分探讨了多线程与多进程的并行处理,以及 `concurrent.futures` 模块的简化用法,适合不同类型的任务需求。第三部分则深入装饰器的实现与应用,包括简单装饰器、带参数的装饰器及 `functools.wraps` 的使用,同时简要介绍了 Lambda 函数和推导式的语法与场景。内容实用且全面,帮助读者掌握 Python 高效编程的核心技能。
198 4
|
Python
Python教程:os 与 sys 模块详细用法
os 模块用于与操作系统交互,主要涉及夹操作、路径操作和其他操作。例如,`os.rename()` 重命名文件,`os.mkdir()` 创建文件夹,`os.path.abspath()` 获取文件绝对路径等。sys 模块则用于与 Python 解释器交互,常用功能如 `sys.path` 查看模块搜索路径,`sys.platform` 检测操作系统等。这些模块提供了丰富的工具,便于开发中处理系统和文件相关任务。
568 14
|
缓存 Shell 开发工具
[oeasy]python064_命令行工作流的总结_vim_shell_python
本文总结了命令行工作流中的关键工具和操作,包括vim、shell和Python。主要内容如下: 1. **上次回顾**:完成了输入输出的代码编写,并再次练习了vim的使用。 2. **shell基础**:介绍了shell环境及其基本命令,如`pwd`、`cd`、`ll -l`等。 3. **Python游乐场**:通过`python3`命令进入Python交互环境,可以进行简单计算和函数调用,常用函数有`help`、`ord`、`chr`等。 4. **vim编辑器**:详细讲解了vim的三种模式(正常模式、插入模式、底行命令模式)及其切换方法,以及常用的底行命令如`:w`、`:q`、`
307 15
|
缓存 安全 Linux
Linux系统查看操作系统版本信息、CPU信息、模块信息
在Linux系统中,常用命令可帮助用户查看操作系统版本、CPU信息和模块信息
3815 23
|
运维 Shell 数据库
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
537 20
|
安全 Shell 数据处理
使用Python执行Shell命令并获取结果
在实际应用中,可以根据需要选择适当的参数和方法来执行Shell命令,并处理可能出现的各种情况。无论是系统管理、自动化任务还是数据处理,掌握这些技巧都将极大地提高工作效率。
772 12
|
Python
Python实用记录(四):os模块-去后缀或者改后缀/指定目录下图片或者子目录图片写入txt/csv
本文介绍了如何使用Python的os模块来操作文件,包括更改文件后缀、分割文件路径和后缀、将指定目录下的所有图片写入txt文档,以及将指定目录下所有子目录中的图片写入csv文档,并为每个子目录分配一个标签。
340 1
|
JavaScript 前端开发 Python
python中的OS模块的基本使用
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。博客分享前端技术及全栈开发经验,持续更新中,期待您的关注和支持!🎉🎉🎉
325 0