大家好,从今天起早起Python将持续更新由小甜同学从初学者的角度学习Python的笔记,其特点就是全文大多由新手易理解的代码与注释及动态演示。刚入门的读者千万不要错过!

很多人学习python,不知道从何学起。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。

很多已经做案例的人,却不知道如何去学习更加高深的知识。

那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!

QQ群:1097524789

Python内置OS模块用法详解 Python 第1张Python内置OS模块用法详解 Python 第2张

为了配合Python办公自动化系列文章,本文带来的是偷学Python第二十七天:Python内置OS模块的详细用法,其他内容将在近期更新完毕,本文目录如下

Python内置OS模块用法详解 Python 第3张Python内置OS模块用法详解 Python 第4张

目录操作

创建目录

 

mkdir() 方法用于以数字权限模式当前目录下创建目录。默认的模式为 0777 (八进制),语法格式如下

 

os.mkdir(path[, mode])
Python内置OS模块用法详解 Python 第5张
  • path – 要创建的目录

  • mode – 要为目录设置的权限数字模式

    

makedirs() 方法用于递归创建目录。可以创建多个目录,其中exist_ok为False,表示目录存在抛出异常。语法格式如下

 

os.makedirs(path, mode=0o777)
Python内置OS模块用法详解 Python 第6张
  • path – 需要递归创建的目录。

  • mode – 权限模式。

示例代码

 

import os
os.mkdir("..\\test_dir")  # 创建目录上一级目录
# 判断是否创建成功
print(os.path.isdir("..\\test_dir"))  # True

os.makedirs("test_dirs\\test_dir")  # 递归创建目录
print(os.path.isdir("test_dirs\\test_dir"))  # True

os.makedirs("Y:/02test/Python/02 进阶部分")
print(os.path.isdir("Y:/02test/Python/02 进阶部分"))  # True
Python内置OS模块用法详解 Python 第7张

 

删除目录

 

rmdir() 方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError。语法格式如下

 

os.rmdir(path)
Python内置OS模块用法详解 Python 第8张

path – 要删除的目录路径

removedirs() 方法用于递归删除目录。注意如果目录不为空,会抛出OSError:[Errno 66] Directory not empty.语法格式为

 

os.removedirs(path)
Python内置OS模块用法详解 Python 第9张

示例代码

 

import os
os.rmdir("..\\test_dir")  # 删除目录
# 判断是否删除成功
print(os.path.isdir("..\\test_dir"))  # False  目录不存在表示以删除

os.removedirs("test_dirs\\test_dir")  # 递归删除目录
print(os.path.isdir("test_dirs\\test_dir"))  # False

os.removedirs("Y:/02test/Python/02 进阶部分")
print(os.path.isdir("Y:/02test/Python/02 进阶部分"))  # False
Python内置OS模块用法详解 Python 第10张

 

重命名目录

 

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

 

os.rename(src, dst)
Python内置OS模块用法详解 Python 第11张

src – 要修改的目录名

dst – 修改后的目录名

renames() 方法用于递归重命名目录或文件。类似rename()。

 

os.renames(old, new)
Python内置OS模块用法详解 Python 第12张

示例代码

 

import os
os.rename("..\\test_dir", "..\\test_dir1")  # 创建目录上一级目录
print(os.path.isdir("..\\test_dir"))  # False
print(os.path.isdir("..\\test_dir1"))  # True

os.renames("test_dirs\\test_dir", "test_dirs\\test_dir1")  # 递归创建目录
print(os.path.isdir("test_dirs\\test_dir"))  # False
print(os.path.isdir("test_dirs\\test_dir1"))  # True

os.renames("Y:/02test/Python/02 进阶部分", "Y:/02test/Python/02进阶部分")
print(os.path.isdir("Y:/02test/Python/02 进阶部分"))  # False
print(os.path.isdir("Y:/02test/Python/02进阶部分"))  # True
Python内置OS模块用法详解 Python 第13张

 

获取目录

 

listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。只支持在 Unix, Windows 下使用。path为需要列出的目录路径

 

os.listdir(path)
Python内置OS模块用法详解 Python 第14张

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

 

os.getcwd()
Python内置OS模块用法详解 Python 第15张

chdir() 方法用于改变当前工作目录到指定的路径。

 

os.chdir(path)
Python内置OS模块用法详解 Python 第16张

示例代码

 

import os
dir_list = os.listdir()  # 获取当前文件的路径,返回一个列表
print(dir_list)  # 返回很长很长的列表

getcwd = os.getcwd()  # 获取当前的工作路径
print(getcwd)  # Y:\02test\Python\01 基础部分

os.chdir("..")  # 返回上级目录
getcwd = os.getcwd()  # 获取当前的工作路径
print(getcwd)  # Y:\02test\Python
Python内置OS模块用法详解 Python 第17张

 

遍历目录

 

walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。在Unix,Windows中有效。

 

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
Python内置OS模块用法详解 Python 第18张

Python内置OS模块用法详解 Python 第19张Python内置OS模块用法详解 Python 第20张

示例代码

 

import os
list_result = os.walk(".", topdown=True, onerror=None, followlinks=False)  # 获取当前目录 参数可写可不写
for root, dirs, files in list_result:
    print(root)
    print(dirs)
    print(files)
Python内置OS模块用法详解 Python 第21张

文件操作

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

 

os.open(file, flags[, mode]);
Python内置OS模块用法详解 Python 第22张

Python内置OS模块用法详解 Python 第23张Python内置OS模块用法详解 Python 第24张

 

os.write() 方法用于写入字符串到文件描述符 fd 中. 返回实际写入的字符串长度。

 

os.write(fd, str)
Python内置OS模块用法详解 Python 第25张

os.lseek() 方法用于设置文件描述符 fd 当前位置为 pos, how 方式修改。

 

os.lseek(fd, pos, how)
Python内置OS模块用法详解 Python 第26张

os.read() 方法用于从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。在Unix,Windows中有效

 

os.read(fd,n)
Python内置OS模块用法详解 Python 第27张

os.fsync() 方法强制将文件描述符为fd的文件写入硬盘。Unix、Windows上可用。

 

os.fsync(fd)
Python内置OS模块用法详解 Python 第28张

os.close() 方法用于关闭指定的文件描述符 fd。

 

os.close(fd)
Python内置OS模块用法详解 Python 第29张

示例代码

 

"""
-*- coding:uft-8 -*-
author: 小甜
time:2020/5/26
"""
import os
file = os.open("text.txt", os.O_CREAT | os.O_RDWR)  # 打开文件


os.write(file, b"This is test")  # 写入内容

os.fsync(file)  # 将字符串刷新到硬盘上
os.lseek(file, 0, 0)  # 将指针置为0
text = os.read(file, 100)   # 读取文件
print(text)  # b'This is test'
os.close(file)  # 关闭文件
Python内置OS模块用法详解 Python 第30张  

大家好,从今天起早起Python将持续更新由小甜同学从初学者的角度学习Python的笔记,其特点就是全文大多由新手易理解的代码与注释及动态演示刚入门的读者千万不要错过!

Python内置OS模块用法详解 Python 第31张

为了配合Python办公自动化系列文章,本文带来的是偷学Python第二十七天:Python内置OS模块的详细用法,其他内容将在近期更新完毕,本文目录如下

Python内置OS模块用法详解 Python 第32张

目录操作

创建目录

 

mkdir() 方法用于以数字权限模式当前目录下创建目录。默认的模式为 0777 (八进制),语法格式如下

os.mkdir(path[, mode])
  • path – 要创建的目录

  • mode – 要为目录设置的权限数字模式

    

makedirs() 方法用于递归创建目录。可以创建多个目录,其中exist_ok为False,表示目录存在抛出异常。语法格式如下

os.makedirs(path, mode=0o777)
  • path – 需要递归创建的目录。

  • mode – 权限模式。

示例代码

import os
os.mkdir("..\\test_dir")  # 创建目录上一级目录
# 判断是否创建成功
print(os.path.isdir("..\\test_dir"))  # True

os.makedirs("test_dirs\\test_dir")  # 递归创建目录
print(os.path.isdir("test_dirs\\test_dir"))  # True

os.makedirs("Y:/02test/Python/02 进阶部分")
print(os.path.isdir("Y:/02test/Python/02 进阶部分"))  # True

 

删除目录

 

rmdir() 方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError。语法格式如下

os.rmdir(path)

path – 要删除的目录路径

removedirs() 方法用于递归删除目录。注意如果目录不为空,会抛出OSError:[Errno 66] Directory not empty.语法格式为

os.removedirs(path)

示例代码

import os
os.rmdir("..\\test_dir")  # 删除目录
# 判断是否删除成功
print(os.path.isdir("..\\test_dir"))  # False  目录不存在表示以删除

os.removedirs("test_dirs\\test_dir")  # 递归删除目录
print(os.path.isdir("test_dirs\\test_dir"))  # False

os.removedirs("Y:/02test/Python/02 进阶部分")
print(os.path.isdir("Y:/02test/Python/02 进阶部分"))  # False

 

重命名目录

 

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

os.rename(src, dst)

src – 要修改的目录名

dst – 修改后的目录名

renames() 方法用于递归重命名目录或文件。类似rename()。

os.renames(old, new)

示例代码

import os
os.rename("..\\test_dir""..\\test_dir1")  # 创建目录上一级目录
print(os.path.isdir("..\\test_dir"))  # False
print(os.path.isdir("..\\test_dir1"))  # True

os.renames("test_dirs\\test_dir""test_dirs\\test_dir1")  # 递归创建目录
print(os.path.isdir("test_dirs\\test_dir"))  # False
print(os.path.isdir("test_dirs\\test_dir1"))  # True

os.renames("Y:/02test/Python/02 进阶部分""Y:/02test/Python/02进阶部分")
print(os.path.isdir("Y:/02test/Python/02 进阶部分"))  # False
print(os.path.isdir("Y:/02test/Python/02进阶部分"))  # True

 

获取目录

 

listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。只支持在 Unix, Windows 下使用。path为需要列出的目录路径

os.listdir(path)

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

os.getcwd()

chdir() 方法用于改变当前工作目录到指定的路径。

os.chdir(path)

示例代码

import os
dir_list = os.listdir()  # 获取当前文件的路径,返回一个列表
print(dir_list)  # 返回很长很长的列表

getcwd = os.getcwd()  # 获取当前的工作路径
print(getcwd)  # Y:\02test\Python\01 基础部分

os.chdir("..")  # 返回上级目录
getcwd = os.getcwd()  # 获取当前的工作路径
print(getcwd)  # Y:\02test\Python

 

遍历目录

 

walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。在Unix,Windows中有效。

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

Python内置OS模块用法详解 Python 第33张

示例代码

import os
list_result = os.walk(".", topdown=True, onerror=None, followlinks=False)  # 获取当前目录 参数可写可不写
for root, dirs, files in list_result:
    print(root)
    print(dirs)
    print(files)

文件操作

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

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

Python内置OS模块用法详解 Python 第34张

 

os.write() 方法用于写入字符串到文件描述符 fd 中. 返回实际写入的字符串长度。

os.write(fd, str)

os.lseek() 方法用于设置文件描述符 fd 当前位置为 pos, how 方式修改。

os.lseek(fd, pos, how)

os.read() 方法用于从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。在Unix,Windows中有效

os.read(fd,n)

os.fsync() 方法强制将文件描述符为fd的文件写入硬盘。Unix、Windows上可用。

os.fsync(fd)

os.close() 方法用于关闭指定的文件描述符 fd。

os.close(fd)

示例代码

"""
-*- coding:uft-8 -*-
author: 小甜
time:2020/5/26
"""

import os
file = os.open("text.txt", os.O_CREAT | os.O_RDWR)  # 打开文件


os.write(file, b"This is test")  # 写入内容

os.fsync(file)  # 将字符串刷新到硬盘上
os.lseek(file, 00)  # 将指针置为0
text = os.read(file, 100)   # 读取文件
print(text)  # b'This is test'
os.close(file)  # 关闭文件
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄