网络编程
位置:首页>> 网络编程>> Python编程>> python内置模块OS 实现SHELL端文件处理器

python内置模块OS 实现SHELL端文件处理器

作者:zxhtom  发布时间:2023-11-24 16:41:14 

标签:python,OS,SHELL,文件,处理器

OS 模块

  • 在讲解包模块时我们提到通过 sys 模块进行查看全局包路径查看于注册,今天我们尝试了解下OS模块,这个模块主要作用就是打通程序于系统之间的通信。

  • 通过 help('modules') 我们能够发现 OS 是作为python的内置模块出现的。

python内置模块OS 实现SHELL端文件处理器

带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'))

获取路径及文件

python内置模块OS 实现SHELL端文件处理器

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

获取绝对路径

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

 import os
 print(os.path.abspath('practice.py'))

python内置模块OS 实现SHELL端文件处理器

返回文件名

 import os
 print(os.path.basename('practice.py'))

python内置模块OS 实现SHELL端文件处理器

获取文件路径

python内置模块OS 实现SHELL端文件处理器

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

路径拼接

  • 我们经常会出现路径地址的拼接。windows , linux 文件分隔符不一样,Java 中给我们提供了一个获取分隔符的变量,但是python 直接忽略掉分隔符了,直接给我们提供一个拼接的方法。

 import os
 print(os.path.join('parent','child'))

python内置模块OS 实现SHELL端文件处理器

不带path

获取平台

  • 有的时候我们需要根据不同平台来执行不同的操纵,这个时候就需要获取到平台信息了。

 import os
 print(os.name)

python内置模块OS 实现SHELL端文件处理器

获取所有文件

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

 import os
 print(os.listdir)

python内置模块OS 实现SHELL端文件处理器

当前工作路径

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

python内置模块OS 实现SHELL端文件处理器

目录操作

  • 关于文件目录新建删除相信也很重要吧。下面我们来看看如何操作。

 import os
 os.mkdir('test')
 print(os.getcwd()+'工作下的文件列表'+os.listdir())
 os.rmdir('test')

python内置模块OS 实现SHELL端文件处理器

重命名文件

 import os
 os.rename(old,new)

文件属性

python内置模块OS 实现SHELL端文件处理器

  • 我们能够看到打印了很多属性。

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

python内置模块OS 实现SHELL端文件处理器

修改权限杀死进程

 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

0
投稿

猜你喜欢

  • 目前防采集的方法有很多种,先介绍一下常见防采集策略方法和它的弊端及采集对策: 一、判断一个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之间有什么区别呢?如果不仔细看,您应该看不出它们之
手机版 网络编程 asp之家 www.aspxhome.com