python中OS模块;

python中OS模块;OS 模块 OS 模块简单的来说它是一个 Python 的系统编程的操作模块 可以处理文件和目录这些我们日常手动需要做的操作 在自动化测试中 经常需要查找操作文件 比如查找配置文件 从而读取配置文件的信息 查找测试报告等等 经常会对大量文件和路径进行操作 这就需要依赖 os 模块 gt gt gt importos 导入 OS 模块 gt gt gt help os

OS模块

OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作。

在自动化测试中,经常需要查找操作文件,比如查找配置文件(从而读取配置文件的信息),查找测试报告等等,经常会对大量文件和路径进行操作,这就需要依赖os模块。

>>> import os #导入OS模块; >>> help(os) #查看os模块帮助文档,里面详细的模块相关函数和使用方法;

os 模块中常用的属性和函数

1、os.getcwd()

查看当前所在目录(路径);

>>> import os >>> print(os.getcwd()) /home 

2、os.chdir()

切换目录(路径);

>>> import os >>> os.chdir(r'/etc/sysconfig/') >>> print(os.getcwd()) /etc/sysconfig 

3、os.curdir、os.pardir

返回当前目录字符串名、返回当前目录的父目录的字符串名;

>>> import os >>> print(os.curdir) . >>> print(os.pardir) .. 

4、os.makedirs()

生成一个多层递归目录

>>> import os >>> os.makedirs('/home/test/xuan')

python中OS模块;

5、os.removedirs()

若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依次类推;

>>> import os >>> os.removedirs('test/xuan') 

python中OS模块;

6、os.mkdir()

创建一个目录;

>>> import os >>> os.mkdir('test') #只能创建一个目录 >>> os.mkdir('abc/123/xxx') Traceback (most recent call last): File " 
  
    ", line 1, in 
   
     FileNotFoundError: [Errno 2] No such file or directory: 'abc/123/xxx' 
    
  
[root@server-7 home]# tree /home/ /home/ └── test 

7、os.rmdir()

删除一个目录,若目录不为空则无法删除,报错;

>>> import os >>> os.mkdir('test/abc') #在test下创建一个abc; >>> os.rmdir('test') #无法删除test; Traceback (most recent call last): File " 
  
    ", line 1, in 
   
     OSError: [Errno 39] Directory not empty: 'test' >>> os.rmdir('test/abc') #可以删除abc,因为abc目录下为空; >>> 
    
  

8、os.listdir()

显示指定目录下,所有的文件和子目录,包括隐藏文件;

>>> import os >>> dirs = os.listdir('/root') >>> print(dirs) ['.bash_logout', '.bash_profile', '.cshrc', '.tcshrc', '.bashrc', 'full_stack', 'jf_blog', 'node-v8.9.4-linux-x64', '.bash_history', '.config', '.npm', '.pki', '.ssh', '.gitconfig', '.oracle_jre_usage', '.cache', '.python_history', 'douban', 'mysql57-community-release-el7-10.noarch.rpm', '.mysql_history', '.viminfo'] 
[root@server-7 ~]# ls -al total 108 dr-xr-x---. 12 root root 4096 Jul 11 11:38 . dr-xr-xr-x. 21 root root 4096 Jul 5 18:02 .. -rw-r--r-- 1 root root 24755 Jul 11 14:05 .bash_history -rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout -rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile -rw-r--r-- 1 root root 382 Jun 20 22:04 .bashrc drwx------ 3 root root 16 Jun 20 21:53 .cache drwx------ 3 root root 24 Jun 5 15:04 .config -rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc drwxr-xr-x 3 root root 36 Jun 23 19:51 douban drwxr-xr-x 2 root root 22 Jul 10 14:02 full_stack -rw-r--r-- 1 root root 53 Jul 5 16:07 .gitconfig drwxr-xr-x 7 root root 4096 Jul 5 18:10 jf_blog -rw-r--r-- 1 root root 25548 Apr 7 2017 mysql57-community-release-el7-10.noarch.rpm -rw------- 1 root root 1545 Jul 9 14:18 .mysql_history drwxrwxr-x 7 500 500 111 Jun 5 15:04 node-v8.9.4-linux-x64 drwxr-xr-x 4 root root 67 Jun 5 15:05 .npm drwxr-xr-x 2 root root 39 Jun 11 11:06 .oracle_jre_usage drwxr----- 3 root root 18 Jun 5 15:15 .pki -rw------- 1 root root 3040 Jul 11 10:48 .python_history drwx------ 2 root root 76 Jul 5 16:05 .ssh -rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc -rw------- 1 root root 5313 Jul 10 14:02 .viminfo 

9、os.remove()

删除文件,不能删除文件夹;

>>> import os >>> print(os.listdir('/test')) ['123', 'hello.txt', '.file', 'qwe'] >>> os.remove('/test/.file') >>> print(os.listdir('/test')) ['123', 'hello.txt', 'qwe'] >>> os.remove('/test') Traceback (most recent call last): File " 
  
    ", line 1, in 
   
     IsADirectoryError: [Errno 21] Is a directory: '/test' 
    
  

10、os.stat()

获取文件/目录信息,并可以获取到文件的大小;

>>> import os >>> info = os.stat('/test') >>> print(info) os.stat_result(st_mode=16877, st_ino=, st_dev=64769, st_nlink=4, st_uid=0, st_gid=0, st_size=42, st_atime=, st_mtime=, st_ctime=) >>> print(info.st_size) 42 

11、os.sep

输出操作系统特定的路径分隔符 ,如:windows 为‘\\’,Linux为‘/’;

>>> import os >>> s = os.sep >>> print(s) / 

12、os.pathsep

输出用于分割文件路径的字符串;

>>> import os >>> print(os.pathsep) : 

13、os.system()

 运行shell命令,直接显示(相当于启动一个全新的shell,然后去执行那条命令,命令执行完成过后,shell直接退出);

>>> import os >>> print(os.system('ls /test/')) #调用系统命令 123 hello.txt qwe 0 [root@server-7 test]# ls 123 hello.txt qwe 

14、os.environ

获取操作系统的环境变量;

>>> import os >>> print(os.environ) environ({'XDG_SESSION_ID': '3393', 'HOSTNAME': 'server-7.dev', 'TERM': 'xterm', 'SHELL': '/bin/bash', 'HISTSIZE': '1000', 'SSH_CLIENT': '61.130.182.194 54987 22', 'SSH_TTY': '/dev/pts/1', 'HISTFILESIZE': '10000', 'JRE_HOME': '/usr/java/jdk1.8.0_171/jre', 'USER': 'root', 'JAVA_BIN': '/usr/java/jdk1.8.0_171/bin', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:', 'MAIL': '/var/spool/mail/root', 'PATH': '/usr/java/jdk1.8.0_171/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/java/jdk1.8.0_171/jre/bin:/usr/local/node/bin:/root/bin', 'PWD': '/home', 'JAVA_HOME': '/usr/java/jdk1.8.0_171', 'LANG': 'en_US.UTF-8', 'HISTCONTROL': 'ignoredups', 'SHLVL': '1', 'HOME': '/root', 'GREP_OPTIONS': '--color=auto', 'LOGNAME': 'root', 'CLASSPATH': '.:/usr/java/jdk1.8.0_171/lib/dt.jar:/usr/java/jdk1.8.0_171/lib/tools.jar', 'SSH_CONNECTION': '61.130.182.194 54987 10.23.230.201 22', 'LESSOPEN': '||/usr/bin/lesspipe.sh %s', 'XDG_RUNTIME_DIR': '/run/user/0', 'HISTTIMEFORMAT': '%Y-%m-%d %H:%M:%S ', '_': '/usr/local/python3/bin/python3.6', 'OLDPWD': '/root'}) 

15、os.path.split(path)

将path分割成目录和文件名二元组返回;

>>> import os >>> print(os.path.split('/test/123/abc')) ('/test/123', 'abc') 

16、os.path.abspath(path)

返回path规范化的绝对路径;

>>> import os >>> print(os.path.abspath('abc')) /test/123/abc 

17、os.path.dirname(path)

返回path的目录;

>>> import os >>> print(os.path.dirname('/test/123/abc')) /test/123 

18、os.path.basename(path)

返回path最后的文件名(一个绝对路径只返回最后的文件名);

>>> import os >>> print(os.path.basename('abc')) abc >>> print(os.path.basename('/test/123/abc')) abc 

19、os.path.exists(path)

判断路径是否存在,如果path存在,返回True;如果不存在,返回Flase;

>>> import os >>> print(os.path.exists('/test/123/abc')) True

20、os.path.isabs(path)

判断是否是绝对路径,如果是,则返回True;

>>> import os >>> print(os.path.isabs('abc')) False >>> print(os.path.isabs('/test/123/abc')) True 

21、os.path.isfile(path)

判断是否是一个文件,如果是则返回True,否则返回False;

>>> import os >>> print(os.path.isfile('abc')) True >>> print(os.path.isfile('/test/qwe')) False 

22、os.path.isdir(path)

判断是否是一个存在的目录;

>>> import os >>> print(os.path.isdir('/test/qwe')) True >>> print(os.path.isdir('/test/abc')) False 

23、os.path.join(path1,[path2],[path3])

将路径和文件名分为一个列表中的两个元素,将它们拼起来,若其中有绝对路径,则之前的path将会被删除.;

>>> import os >>> print(os.path.join('/test/','hello.txt')) /test/hello.txt >>> print(os.path.join('/test/123','hello.txt')) /test/123/hello.txt 

24、os.path.getatime(path)

返回path所指向的文件或者目录的最后存取时间;

>>> import os >>> print(os.path.getatime('/test/qwe')) .

25、os.path.getmtime(time)

返回path所指向的文件或者目录的最后修改时间;

>>> import os >>> print(os.path.getmtime('/test/qwe')) . 

26、os.popen(‘ls’)

相当于打开了一个临时的文件存储打开的目录(可以赋给变量,字符串的形式);

>>> import os >>> a = os.popen('ls').read() >>> a 'douban\nfull_stack\njf_blog\nmysql57-community-release-el7-10.noarch.rpm\nnode-v8.9.4-linux-x64\n' >>> print(a) douban full_stack jf_blog mysql57-community-release-el7-10.noarch.rpm node-v8.9.4-linux-x64 [root@server-7 ~]# ls -l total 32 drwxr-xr-x 3 root root 36 Jun 23 19:51 douban drwxr-xr-x 2 root root 22 Jul 10 14:02 full_stack drwxr-xr-x 7 root root 4096 Jul 5 18:10 jf_blog -rw-r--r-- 1 root root 25548 Apr 7 2017 mysql57-community-release-el7-10.noarch.rpm drwxrwxr-x 7 500 500 111 Jun 5 15:04 node-v8.9.4-linux-x64 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209043.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午10:10
下一篇 2026年3月19日 上午10:11


相关推荐

  • RIP路由协议的理解

    RIP路由协议的理解RIP 路由协议的理解 计算机网络 距离向量算法 实际中较少使用 默认 RIP 使用简单的度量 通往目的站点所需经过的链路数 取值为 1 15 数值 16 表示无穷大 使用 UDP 的 520 端口发送和接收 RIP 分组 RIP 每隔 30 秒以广播形式发送一次路由信息 在邻居之间互传 防止广播风暴 后续分组做随机延时后发送 如果一个路由在 180s 内未被更新 相应的距离设置为无穷大 16 并从路由表中删

    2026年3月18日
    1
  • JS Array ECMAScript5 Methods

    JavaScript的新版本(ECMAScript5)中,为数组新增了一些方法。这些方法包括:forEach(f[,o]):此方法类似于for/in循环,其作用是遍历整个数组并执行函数的某些

    2021年12月22日
    40
  • VSTO开发概述

    VSTO开发概述转 http ryueifu blog 51cto com 本文向读者介绍使用 VisualStudio 编程工具开发 Office 插件的基础入门知识 VSTO 是 VisualStudio 的简称 VisualStudio 是微软开发的最为成熟的编程套件 包含 C VB Net 等多种语言 由于 VS 功能的强大和方便 而

    2026年3月19日
    1
  • JavaScript(1)高阶函数filter、map、reduce「建议收藏」

    JavaScript(1)高阶函数filter、map、reduce「建议收藏」前言需求:有这样一个数组[10,20,110,200,60,30,40]1.筛选出数组中小于100的元素2.将筛选出的每个元素的值x23.完成第2步之后,将数组中的所有元素加起来

    2022年7月30日
    7
  • 音频数字化简单原理「建议收藏」

    音频数字化简单原理     从字面上来说,数字化(Digital)就是以数字来表示,例如用数字去记录一张桌子的长宽尺寸,各木料间的角度,这就是一种数字化。跟数位常常一起被提到的字是模拟(Analog/Analogue),模拟的意思就是用一种相似的东西去表达,例如将桌子用传统相机将三视图拍下来,就是一种模拟的记录方式。两个概念:1、分贝(dB):声波振幅的度量单位,非

    2022年4月17日
    63
  • 正交多项式拟合函数

    正交多项式拟合函数实验要求 给定函数 f x 在 m 个采样点处的值 f 以及每个点的权重 1 lt i lt m 求曲线拟合的正交多项式 满足最小二乘误差 函数接口定义 intOPA double f doublet intm doublex doublew doublec double eps 在接口定义中 f 是给定函数 f x m 为

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号