️前言:

os 模块提供了非常丰富的方法用来处理文件和目录。是Python基础必备的,所以我用了6000字详细讲述了绝大部分os模块提供的方法,方法如下

方法一、os.makedirs()和os.removedirs()方法

  • os.makedirs('目录1/目录2/……')可生成多层递归目录
  • os.removedirs('目录名称') 若目录内容为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推

方法二、os.mkdir()和os.rmdir()方法

  • os.mkdir(path)生成单级目录;相当于shell中mkdir dirname

​编辑

  • os.rmdir(path)删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname

参数

  • path -- 需要列出的目录路径

方法三、os.listdir(path)方法

os.listdir()   列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印。这个列表以字母顺序。 它不包括 . 和 .. 即使它在文件夹中。

参数

  • path -- 需要列出的目录路径

方法四、os.remove()方法

os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。

语法

remove() 方法语法格式如下:

os.remove(path)

参数

  • path -- 要移除的文件路径

返回值

该方法没有返回值

方法五、os.rename()方法

os.rename() 方法用于命名文件或目录,从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError。

语法

rename() 方法语法格式如下:

os.rename(修改前的目录名, 修改后的目录名)

返回值

该方法没有返回值

方法六、os.stat()方法

os.stat()用于获取文件/目录信息

语法

stat() 方法语法格式如下:

os.stat(path)

参数

  • path -- 指定路径

返回值

stat 结构:

  • st_mode: inode 保护模式
  • st_ino: inode 节点号。
  • st_dev: inode 驻留的设备。
  • st_nlink: inode 的链接数。
  • st_uid: 所有者的用户ID。
  • st_gid: 所有者的组ID。
  • st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
  • st_atime: 上次访问的时间。
  • st_mtime: 最后一次修改的时间。
  • st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。

栗子

方法七、os.system()方法

os.system()方法在子shell中执行命令(字符串)。该方法是通过调用标准C函数system()来实现的,并且具有相同的限制。如果命令生成任何输出,则将其发送到解释器标准输出流。无论何时使用此方法,都将打开操作系统的相应 shell 并在其上执行命令。

用法:

os.system(command)

参数:

command: 它是字符串类型,告诉执行哪个命令。

返回值:

在Unix上,返回值是进程的退出状态,在Windows上,返回值是系统 shell 程序在运行命令后返回的值。

栗子

#获取计算机当前日期的方法
os.system('date')
#运行记事本的方法
os.system('notepad')
# 调用操作系统的计算器
os.system("calc")
# 调用操作系统的cmd
os.system("cmd")
# 调用远程桌面连接
os.system('mstsc')

方法八、os.popen() 方法

概述

os.popen() 方法用于从一个命令打开一个管道。在Unix,Windows中有效

语法

popen() 方法语法格式如下:

os.popen(command[, mode[, bufsize]])

参数

  • command -- 使用的命令。
  • mode -- 模式权限可以是 'r'(默认) 或 'w'。
  • bufsize -- 指明了文件需要的缓冲大小:0意味着无缓冲;1意味着行缓冲;其它正值表示使用参数大小的缓冲(大概值,以字节为单位)。负的bufsize意味着使用系统的默认值,一般来说,对于tty设备,它是行缓冲;对于其它文件,它是全缓冲。如果没有改参数,使用系统的默认值。

返回值

返回一个文件描述符号为fd的打开的文件对象

栗子:

方法九、os.getcwd()方法

概述

os.getcwd() 方法用于返回当前工作目录。

语法

getcwd() 方法语法格式如下:

os.getcwd()

参数

返回值

返回当前进程的工作目录。

栗子

方法十、os.chdir()方法

概述

os.chdir() 方法用于改变当前工作目录到指定的路径。相当于shell下cd

语法

chdir() 方法语法格式如下:

os.chdir(path)

参数

  • path -- 要切换到的新路径。

返回值

如果允许访问返回 True , 否则返回False。

栗子

方法十一、os.path模块的所有使用方法

方法 说明
os.path.abspath(path) 返回绝对路径
os.path.basename(path) 返回文件名
os.path.commonprefix(list) 返回list(多个路径)中,所有path共有的最长的路径
os.path.dirname(path) 返回文件路径(返回父目录)
os.path.exists(path) 路径存在则返回True,路径损坏返回False
os.path.lexists 路径存在则返回True,路径损坏也返回True
os.path.expanduser(path) 把path中包含的""和"user"转换成用户目录
os.path.expandvars(path) 根据环境变量的值替换path中包含的"\(name"和"\){name}"
os.path.getatime(path) 返回最近访问时间(浮点型秒数)(返回path所指向的文件或者目录的最后访问时间)
os.path.getmtime(path) 返回最近文件修改时间(返回path所指向的文件或者目录的最后修改时间)
os.path.getctime(path) 返回文件 path 创建时间
os.path.getsize(path) 返回文件大小,如果文件不存在就返回错误
os.path.isabs(path) 判断是否为绝对路径
os.path.isfile(path) 判断路径是否为文件,如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 判断路径是否为目录,如果path是一个存在的目录,则返回True。否则返回False
os.path.islink(path) 判断路径是否为链接
os.path.ismount(path) 判断路径是否为挂载点
os.path.join(path1[, path2[, ...]]) 把目录和文件名合成一个路径
os.path.normcase(path) 转换path的大小写和斜杠
os.path.normpath(path) 规范path字符串形式
os.path.realpath(path) 返回path的真实路径
os.path.relpath(path[, start]) 从start开始计算相对路径
os.path.samefile(path1, path2) 判断目录或文件是否相同
os.path.sameopenfile(fp1, fp2) 判断fp1和fp2是否指向同一文件
os.path.samestat(stat1, stat2) 判断stat tuple stat1和stat2是否指向同一个文件
os.path.split(path) 把路径分割成 dirname 和 basename,返回一个元组
os.path.splitdrive(path) 一般用在 windows 下,返回驱动器名和路径组成的元组
os.path.splitext(path) 分割路径中的文件名与拓展名
os.path.splitunc(path) 把路径分割为加载点与文件
os.path.walk(path, visit, arg) 遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数
os.path.supports_unicode_filenames 设置是否支持unicode路径名

方法十二、os.pathsep

os.pathsep的返回值是输出用于分割文件路径的字符串,win下为;号,Linux下为:号

import os
print(os.pathsep) 输出结果:

方法十三、os.name和os.environ

os.name方法

输出字符串指示当前使用平台。

  • win -->    ' nt '
  • Linux --> ' posix '

当我在Windows系统上执行以下代码:

import os
print(os.name) 输出结果:
nt

os.environ方法

用于获取系统的环境变量

方法十四、os.linesep方法

os.linesep方法用于输出当前平台使用的行终止符,win下为‘ \t\n ’,Linux下为‘ \n ’

栗子:

print(1,os.linesep,1)

输出结果:
1
1

方法十五、os.sep方法

os.sep方法用于输出分割文件路径的字符串,win下为‘ \ ’,Linux下为‘  / ’

栗子:

import os
print(os.sep) 输出结果:
\

方法十六、os.access()方法

概述

os.access() 方法使用当前的uid/gid尝试访问路径。大部分操作使用有效的 uid/gid, 因此运行环境可以在 suid/sgid 环境尝试。

语法

access() 方法语法格式如下:

os.access(path, mode);

参数

  • path -- 要用来检测是否有访问权限的路径。

  • mode -- mode为F_OK,测试存在的路径,或者它可以是包含R_OK, W_OK和X_OK或者R_OK, W_OK和X_OK其中之一或者更多。

    • os.F_OK: 作为access()的mode参数,测试path是否存在。
    • os.R_OK: 包含在access()的mode参数中 , 测试path是否可读。
    • os.W_OK 包含在access()的mode参数中 , 测试path是否可写。
    • os.X_OK 包含在access()的mode参数中 ,测试path是否可执行。

返回值

如果允许访问返回 True , 否则返回False。

方法十七、os.open() 方法

概述

os.open() 方法用于打开一个文件,并且设置需要的打开选项,模式参数mode参数是可选的,默认为 0777。

语法

open() 方法语法格式如下:

os.open(file, flags[, mode]);

参数

  • file -- 要打开的文件

  • flags -- 该参数可以是以下选项,多个使用 "|" 隔开:

    • os.O_RDONLY: 以只读的方式打开
    • os.O_WRONLY: 以只写的方式打开
    • os.O_RDWR : 以读写的方式打开
    • os.O_NONBLOCK: 打开时不阻塞
    • os.O_APPEND: 以追加的方式打开
    • os.O_CREAT: 创建并打开一个新文件
    • os.O_TRUNC: 打开一个文件并截断它的长度为零(必须有写权限)
    • os.O_EXCL: 如果指定的文件存在,返回错误
    • os.O_SHLOCK: 自动获取共享锁
    • os.O_EXLOCK: 自动获取独立锁
    • os.O_DIRECT: 消除或减少缓存效果
    • os.O_FSYNC : 同步写入
    • os.O_NOFOLLOW: 不追踪软链接
  • mode -- 类似chmod()。

返回值

返回新打开文件的描述符。

栗子:

import os, sys

# 打开文件
fd = os.open( "要打开的文件", os.O_RDWR|os.O_CREAT ) # 写入字符串
os.write(fd, str.encode("要写入的内容")) # 关闭文件
os.close( fd )

方法十八、os.curdir和os.pardir方法

  • os.curdir方法

返回当前目录:(' . ')

  • os.pardir方法

获取当前目录的符目录字符串名:(' .. ')

栗子:

print(os.curdir)
print(os.pardir) 输出结果:
.
..

Python模块大全之《 os模块》的更多相关文章

  1. Python文件系统功能:os模块

    Python文件系统功能:os模块 1.os模块方法分类 (1)目录: chdir() 改变工作目录 chroot() 设定当前进程的根目录 listdir() 列出指定目录下的所有文件名 mkdir ...

  2. Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块

    Python第十一天    异常处理  glob模块和shlex模块    打开外部程序和subprocess模块  subprocess类  Pipe管道  operator模块   sorted函 ...

  3. python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

    python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess ...

  4. Python 入门之 内置模块 -- os模块

    Python 入门之 内置模块 -- os模块 1.os os是和操作系统做交互,给操作发指令 os模块是与操作系统交互的一个接口,它提供的功能多与工作目录,路径,文件等相关 (1)工作路径 prin ...

  5. Python模块02/序列化/os模块/sys模块/haslib加密/collections

    Python模块02/序列化/os模块/sys模块/haslib加密/collections 内容大纲 1.序列化 2.os模块 3.sys模块 4.haslib加密 5.collections 1. ...

  6. Python 模块学习:os模块

    一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台 ...

  7. python杂记-1(os模块)

    os模块说明:python os模块包含普遍的操作系统功能 os.access(path, mode) # 检验权限模式 os.chdir(path) # 改变当前工作目录os.chflags(pat ...

  8. Python标准库之os模块

    1.删除和重命名文件 import os import string def replace(file, search_for, replace_with): # replace strings in ...

  9. [转] Python 模块学习:os模块

    一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台 ...

  10. python模块基础之OS模块

    OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作. 可以查看OS模块的帮助文档: >>> import os #导入os模块 ...

随机推荐

  1. KingbaseES 实现MYSQL hex/unhex 函数

    MySQL 的hex 和 unhex 函数类似于KingbaseES 的encode 和 decoding,实现字符与16进制之间的转换. 一.先看MySQL例子 mysql> select h ...

  2. KingbaseES R6 集群修改ssh端口执行sys_backup.sh备份案例

    数据库环境:** test=# select version(); version ---------------------------------------------------------- ...

  3. 部署Netlify站点博客

    Netlify站点部署静态博客 今天尝试把站点部署在Netlify上,因为部署在GitHub Pages上,国内访问速度太慢了,所以就尝试一下别的站点,部署成功之后发现速度还是不太行,后边继续找找原因 ...

  4. vscode-jupyter快捷键

    运行本单元 ctrl + enter 运行本单元,新建一个单元 shift + enter 运行本单元,在其下方新建一个单元 alt + enter 在上方插入一个新单元 a 在下方插入新单元 b 复 ...

  5. Elasticsearch 8.X 节点角色划分深入详解

    文章转载自: https://mp.weixin.qq.com/s/3486iH3VH7TV6lza-a7adQ 0.问题引出 如果你的 Elasticsearch 集群是 7.9 之前的版本,在配置 ...

  6. k8s中 资源配额 ResourceQuota

    文章转载自:https://www.kuboard.cn/learning/k8s-advanced/policy/lr.html 当多个用户(团队)共享一个节点数量有限的集群时,如何在多个用户(团队 ...

  7. Mysql 数据库SQL脚本导入

    1.进入mysql命令行窗口 mysql -uroot -p123456 2.展示所有数据库 show databases: 3.选择数据库 use 数据库名 4.展示选择的数据库中所有表 show ...

  8. Spring笔记四

    Spring-04 1.Spring整合Junit ①导入依赖 <!-- junit --> <dependency> <groupId>junit</gro ...

  9. PTA2022 520钻石争霸赛题解

    7-1 520表白 不用说 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int max ...

  10. IDEA中直接将 SpringBoot项目打包成 Docker镜像时 pom.xml的配置

    <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactI ...