python内置模块OS 实现SHELL端文件处理器
作者:zxhtom 发布时间:2023-11-24 16:41:14
OS 模块
在讲解包模块时我们提到通过
sys
模块进行查看全局包路径查看于注册,今天我们尝试了解下OS模块,这个模块主要作用就是打通程序于系统之间的通信。通过
help('modules')
我们能够发现OS
是作为python的内置模块出现的。
带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'))
获取路径及文件
之前在操作 Java 时经常需要获取文件所在目录,当时都是通过Java对象属性获取的,而 Python 中自动帮我们处理了。
获取绝对路径
不知道你有没有注意到上面我们获取脚本所在目录时通过
../os
等方式,包括获取路径及文件章节中我们手动敲出来文件的完整路径,实际上通过python自带了。
import os
print(os.path.abspath('practice.py'))
返回文件名
import os
print(os.path.basename('practice.py'))
获取文件路径
仅限我们传入了全路径的文件
dirname
才起作用,这个感觉有点鸡肋
路径拼接
我们经常会出现路径地址的拼接。windows , linux 文件分隔符不一样,Java 中给我们提供了一个获取分隔符的变量,但是python 直接忽略掉分隔符了,直接给我们提供一个拼接的方法。
import os
print(os.path.join('parent','child'))
不带path
获取平台
有的时候我们需要根据不同平台来执行不同的操纵,这个时候就需要获取到平台信息了。
import os
print(os.name)
获取所有文件
既然是模块肯定少不了我们常用的功能,之前提到过了我们经常在服务器上执行
ls -al
.
import os
print(os.listdir)
当前工作路径
很多时候我们不回直接在脚本路径执行脚本,往往都是通过绝对路径或者相对路径来执行脚本,有的时候脚本会依赖执行路径上的某些文件,所以获取执行脚本路径至关重要。
目录操作
关于文件目录新建删除相信也很重要吧。下面我们来看看如何操作。
import os
os.mkdir('test')
print(os.getcwd()+'工作下的文件列表'+os.listdir())
os.rmdir('test')
重命名文件
import os
os.rename(old,new)
文件属性
我们能够看到打印了很多属性。
属性 | 作用 |
---|---|
st_mode | 权限模式 |
st_ino | 节点号 |
st_dev | 驻留的设备 |
st_nlink | 节点连接数 |
st_uid | 拥有者用户 |
st_gid | 所属组ID |
st_size | 文件大小 |
st_atime | 上次访问时间 |
st_mtime | 最后一次修改时间 |
st_ctime | 操作系统报告的ctime |
修改权限杀死进程
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 命令。
来源:https://juejin.cn/post/7142661450262282270
猜你喜欢
- 目前防采集的方法有很多种,先介绍一下常见防采集策略方法和它的弊端及采集对策: 一、判断一个IP在一定时间内对本站页面的访问次数,如果明显超过
- 用QQ聊过天的朋友都对它的自动隐藏窗口功能爱不释手,它可以使窗口显得清爽整洁而且富有动感,笔者的几个朋
- 本文实例讲述了python通过imaplib模块读取gmail里邮件的方法。分享给大家供大家参考。具体实现方法如下:import imapl
- Web标准的web UI——来源、谬误与个人理解序我从2004年末开始接触web标准,2005年5月正式采取完全的web标准方式的网页制作,
- 做程序开发的人都知道版本控制的重要性, 代码的管理好说,TFS/SVN/VSS/CVS,哪个都能用。但涉及到数据库的版本控制,就不是太好做的
- python3字符串操作 x = 'abc' y = 'defgh' print(x + y)
- css里关于浏览器的兼容问题一直困惑着我们初级的css用户(高手可直接绕过),这里想根据我前段时间拜读的李超的书籍《css网站布局实录》里学
- 完美的渐变透明效果。支持IE,Firefox渐变,自己写的JS框架中用的东西,发出来了。修正完全隐藏时,偶尔不display = "
- 放大镜并不是一个难以实现的效果, 只是因为牵涉到一些精确的数值计算, 显得比较繁琐. 在未来的一段日子, 我会不定期地写关于 JavaScr
- MySQL使用环境变量TMPDIR的值作为保存临时文件的目录的路径名。如果未设置TMPDIR,MySQL将使用系统的默认值,通常为/tmp、
- 很久以前就知道微软的Petshop的很经典,昨天抽出时间去学习,一开始还真的不适应,什么成员资格,还真的看不太懂,运行petshop想从登陆
- 学习JQUERY就应该从最基本的学起,基本的就应该是语法了,在这里,我们有必要先温习一下JAVASCRIPT的一些知识。语法就不用说了,都是
- 问题:如果一个网站拥有两个域名:domain1.com和domain2.com。在网站运营前期,主推domain1.com,但发展到中期,由
- 如何使用数据绑定控件实现不换页提交数据?Chunfeng.html' 提交页面< html><
- 研究好多天了,也试过好多办法了,总结出目前发现最好的方法:先说一下基本的东西:<%@ codepage=65001%>
- 背景在小站点上,直接用git来部署php代码相当方便,你的远程站点以及本地版本库都有一个版本控制,追踪问题或者回滚是很轻松的事情。因为在小公
- 现在介绍加速网页图形显示速度的六种方法,为你解决这个难题。其最基本的宗旨就是,让你用买鱼的价钱,品尝到熊掌的美味和营养。 1.首先要确定图像
- //-------------------------------------------- // 删除千分点。 //-----------
- ⛳️ 实战场景本篇博客为大家再次带来 Go 语言的基础知识,这次要学习的内容是 Go 中的文件操作。打开关闭文件在 Go 中操作文件,首先要
- Request.ServerVariables里Server_Name与Http_Host之间有什么区别呢?如果不仔细看,您应该看不出它们之