偷学Python第二十七天:PythonOS模块的详细用法

   日期:2020-05-28     浏览:123    评论:0    
核心提示:偷学Python第二十七天:PythonOS模块的详细用法古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼文章目录偷学Python第二十七天:PythonOS模块的详细用法OS模块目录操作创建目录删除目录重命名目录获取目录遍历目录文件操作总结明日学习计划甜甜有话说目标:可以用Python做一些简单的数据分析。坚持完成自己的目标!勿忘初心~OS模块Python中的os模块提供了非常丰富的方法用来处理文件和目录。使用·import来引入此模块目录操作创建目录mkdir().python

偷学Python第二十七天:PythonOS模块的详细用法

古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼

文章目录

  • 偷学Python第二十七天:PythonOS模块的详细用法
    • OS模块
      • 目录操作
        • 创建目录
        • 删除目录
        • 重命名目录
        • 获取目录
        • 遍历目录
      • 文件操作
    • 总结
    • 明日学习计划
    • 甜甜有话说

目标:可以用Python做一些简单的数据分析。

坚持完成自己的目标!勿忘初心~

OS模块

Python中的os模块提供了非常丰富的方法用来处理文件和目录。使用·import来引入此模块

目录操作

创建目录

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

语法格式

os.mkdir(path[, mode])
  • path – 要创建的目录
  • mode – 要为目录设置的权限数字模式

注意:在Windows下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)

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)
  • 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 下使用。

语法格式

os.listdir(path)

path – 需要列出的目录路径

返回指定路径下的文件和文件夹列表。

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

语法格式

os.getcwd()

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

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

语法格式

os.chdir(path)

path – 要切换到的新路径。

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

示例代码

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]]])
  • top – 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。
    • root 所指的是当前正在遍历的这个文件夹的本身的地址
    • dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
    • files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
  • topdown --可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。
  • onerror – 可选,需要一个 callable 对象,当 walk 需要异常时,会调用。
  • followlinks – 可选,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。

示例代码

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]);
  • 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 – 设置文件的权限(Windows基本没作用)

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

语法格式

os.write(fd, str)
  • fd – 文件描述符。
  • str – 写入的字符串。

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

语法结构

os.lseek(fd, pos, how)
  • fd – 文件描述符。
  • pos – 这是相对于给定的参数 how 在文件中的位置。。
  • how – 文件内参考位置。SEEK_SET 或者 0 设置从文件开始的计算的pos; SEEK_CUR或者 1 则从当前位置计算; os.SEEK_END或者2则从文件尾部开始。

**注意:**如果在写入文件之后想要读取里面的内容,需要调整指针位置

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

语法结构

os.read(fd,n)
  • fd – 文件描述符。
  • n – 读取的字节。

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

语法结构

os.fsync(fd)

fd – 文件的描述符。

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

语法结构

os.close(fd)

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, 0, 0)  # 将指针置为0
text = os.read(file, 100)   # 读取文件
print(text)  # b'This is test'
os.close(file)  # 关闭文件

总结

明日学习计划

Python的time时间模块和random随机数模块

甜甜有话说

今天又是收获满满的一天,加油~

座右铭:不要在该奋斗的年纪选择安逸!!

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服