吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 877|回复: 5
收起左侧

[学习记录] 纯净版 - OS模块的学习笔记

  [复制链接]
redballoon 发表于 2023-3-17 16:34
本帖最后由 redballoon 于 2023-3-17 17:25 编辑

OS 模块的使用

导入模块

import os
# 避免使用的方法 from os import * 因为这会与内置函数open() 起冲突,从而引起意料之外的结果。

os模块的常用操作

  • 1.获取当前工作的路径
print(os.getcwd())
# out:  D:\pythonProjects\pythonBasic\os模块
  • 2.指定路径为当前工作路径
os.chdir('D:/pythonProjects')  
print(os.getcwd())
# out: D:\pythonProjects
  • 3.创建一个新的文件夹,不能创建多层级的文件夹(目录)
# 当文件已存在时,无法创建该文件。
os.mkdir('test1')
  • 4.创建多层级文件夹(目录)
os.makedirs('cdd/dd')
  • 5.删除空文件夹
# 删除空文件夹 如果文件夹不是空的就会报错:目录不是空的。
os.rmdir('test')
  • 6.递归删除目录
# 工作方式类似于 rmdir(),不同之处在于,如果成功删除了末尾一级目录,removedirs() 会尝试依次删除 path 中提到的每个父目录,直到抛出错误为止(但该错误会被忽略,因为这通常表示父目录不是空目录)
os.removedirs(os.path.join('cdd', 'dd'))
  • 7.删除文件
os.remove('dd.txt')
  • 8.文件或路径(文件夹)重命名和移动文件夹
os.rename(src, dst) 
# src 原路径,dst修改后的命名
# 只能重命名原路径src 最后的路径或文件的名字,中间路径都必须要存在,否则就会抛出FileNotFoundError
# os.rename('test.txt', 'demo.txt')  # 重命名
# os.rename(os.path.join('test', 'test.txt'), 'test.txt')  # 移动

os.path模块

os.path中的函数基本上是纯粹的字符串操作。换句话说,传入该模块函数的参数甚至不需要是一个有效路径,该模块也不会试图访问这个路径,而仅仅是按照“路径”的通用格式对字符串进行处理
  • 9.返回路径 path 的绝对路径
print(os.path.abspath('demo.txt'))
# out: D:\pythonProjects\pythonBasic\os模块\demo.txt
  • 10.判断该路径或文件是否存在 (Bool)
print(os.path.exists('demo.txt'))
# out: True
  • 11.获取文件的最近访问时间
# os.path.getatime(path)  返回 path 所指文件的最近访问时间(浮点型秒数)即time时间戳
print(os.path.getatime('demo.txt'))
# out: 1678982202.702731

t = os.path.getatime('demo.txt')
sys_time = time.localtime(t)
formatter_time = time.strftime('%Y-%m-%d %H:%M:%S', sys_time)
print(formatter_time)
# out: 2023-03-17 16:04:12
  • 12.获取文件的创建时间
# os.path.getctime(path) 在windos下获取文件的创建时间,在Unix返回的是最后的修改时间
print(os.path.getctime('demo.txt'))
# out: 1678981495.357391

t = os.path.getctime('demo.txt')
tupTime = time.localtime(t)  # 将时间戳转换成本地时间
format_time = time.strftime("%Y-%m-%d %H:%M:%S", tupTime)  # 转换成对应的时间格式
print(format_time)  
# out: 2023-03-16 23:44:55
  • 13.获取文件的大小
# os.path.getsize(path) 获取文件的大小
print(os.path.getsize('demo.txt'))
# out: 127 (字节)
  • 14.os.path.split(path) 把路径分割成 dirname 和 basename,返回一个元组
print(os.path.split(os.path.join('test', 'test.txt')))
# out: ('test', 'test.txt')
print(os.path.split('test/test2/demo3.txt'))
# out: ('test/test2', 'demo3.txt')
  • 15.判断路径是否为文件  返回布尔值
# os.path.isfile() 判断路径是否为文件 返回布尔值
print(os.path.isfile('demo.txt'))
# out: True
  • 16.判断路径是否为目录  返回布尔值
# os.path.isdir() 判断路径是否为目录 返回布尔值
print(os.path.isdir('test'))
# out: True
  • 17.把目录和文件名合成一个路径 join
# os.path.join(path1[, path2[, ...]]) 将传入的路径进行拼接
print(os.path.join('test', 'test2', 'xxx.txt'))
# out: test\test2\xxx.txt
  • 18.递归查找目录下所有的文件夹和文件
# os.walk(path, visit, arg) 会递归的寻找路径下所有子文件夹和文件
print(os.walk('test'))
# out: <generator object walk at 0x0000028FB505EC10>  返回的是一个生成器 (dirpath, dirnames, filenames)

# 这里设置个目录树
'''
|--test
    |--test2
        |--demo3.txt
    |--demo2.txt
'''
for path, dirname, filename in os.walk(r'D:\pythonProjects\pythonBasic\os模块\test'):
    print(path, dirname, filename)
# out: D:\pythonProjects\pythonBasic\os模块\test ['test2'] ['demo2.txt']
'''这里第一个返回结果就像在当前目录下(D:\pythonProjects\pythonBasic\os模块\test)点开之后看到的所有文件夹和文件'''
# out: D:\pythonProjects\pythonBasic\os模块\test\test2 [] ['demo3.txt']
'''第二结果就像是继续点开文件夹看看还有没有文件夹和文件,有文件夹就继续往下点开'''

免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
帝玄奥懿 + 1 用心讨论,共获提升!
ChunBuwan + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ninng 发表于 2023-3-17 21:07
向大佬学习
ledi 发表于 2023-3-21 19:19
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 23:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表