Python进阶学习-文件系统

本文介绍了Python中关于文件系统的重要知识,包括文件对象方法、OS模块的常用函数,如文件打开、移动读取指针、路径处理等,并探讨了序列化与反序列化。通过学习,可以掌握文件的高级操作和文件系统的管理。
摘要由CSDN通过智能技术生成

学习内容

  1. 文件与文件系统
  2. 文件对象方法
  3. 简洁的 with 语句
  4. OS 模块中关于文件/目录常用的函数
  5. 序列化与反序列化

重点实例

打开文件

  1. open(file, mode=‘r’, buffering=None,encoding=None,errors=None, newline=None, closefd=True)Open file and return a stream. Raise OSError upon failure.
    a. file : 必需,文件路径(相对或者绝对路径)。
    b. mode : 可选,文件打开模式
    c. buffering : 设置缓冲
    d. encoding : 一般使用utf8
    e. errors : 报错级别
    f. newline : 区分换行符

  2. fileObject.seek(offset[, whence]) 用于移动文件读取指针到指定位置。
    a. offset :开始的偏移量,也就是代表需要移动偏移的字节数,如果是负数表示从倒数第几位开始。
    b. whence :可选,默认值为 0。给 offset 定义一个参数,表示要从哪个位置开始偏移;0 代表从文件开
    头开始算起,1 代表从当前位置开始算起,2 代表从文件末尾算起。

import os
print(os.curdir) # .
print(os.pardir) # ..
print(os.sep) # \
print(os.linesep)
print(os.name) # nt
  1. os.curdir 指代当前目录( . )
  2. os.pardir 指代上一级目录( … )
  3. os.sep 输出操作系统特定的路径分隔符(win下为\ ,Linux下为/ )
  4. os.linesep 当前平台使用的行终止符(win下为\r\n ,Linux下为\n )
  5. os.name 指代当前使用的操作系统(包括:‘mac’,‘nt’)
import os
# 返回文件名
print(os.path.basename(r'C:\test\lsgo.txt')) # lsgo.txt
# 返回目录路径
print(os.path.dirname(r'C:\test\lsgo.txt')) # C:\test
# 将目录和文件名合成一个路径
print(os.path.join('C:\\', 'test', 'lsgo.txt')) # C:\test\lsgo.txt
# 分割文件名与路径
print(os.path.split(r'C:\test\lsgo.txt')) # ('C:\\test', 'lsgo.txt')
# 分离文件名与扩展名
print(os.path.splitext(r'C:\test\lsgo.txt')) # ('C:\\test\\lsgo', '.txt')
  1. os.path.basename(path) 去掉目录路径,单独返回文件名
  2. os.path.dirname(path) 去掉文件名,单独返回目录路径
  3. os.path.join(path1[, path2[, …]]) 将 path1 , path2 各部分组合成一个路径名
  4. os.path.split(path) 分割文件名与路径,返回(f_path,f_name) 元组。如果完全使用目录,它会将最后
    一个目录作为文件名分离,且不会判断文件或者目录是否存在。
  5. os.path.splitext(path) 分离文件名与扩展名,返回(f_path,f_name) 元组。
import os
import time
file = r'.\lsgo.txt'
print(os.path.getsize(file)) # 30
print(os.path.getatime(file)) # 1565593737.347196
print(os.path.getctime(file)) # 1565593737.347196
print(os.path.getmtime(file)) # 1565593797.9298275
print(time.gmtime(os.path.getctime(file)))
# time.struct_time(tm_year=2019, tm_mon=8, tm_mday=12, tm_hour=7, tm_min=8, tm_sec=57, tm_wday=0,
tm_yday=224, tm_isdst=0)
print(time.localtime(os.path.getctime(file)))
# time.struct_time(tm_year=2019, tm_mon=8, tm_mday=12, tm_hour=15, tm_min=8, tm_sec=57, tm_wday=0,
tm_yday=224, tm_isdst=0)
  1. os.path.getsize(file) 返回指定文件大小,单位是字节。
  2. os.path.getatime(file) 返回指定文件最近的访问时间
  3. os.path.getctime(file) 返回指定文件的创建时间
  4. os.path.getmtime(file) 返回指定文件的最新的修改时间
  5. 浮点型秒数,可用time模块的gmtime() 或localtime() 函数换算

pickle模块中最常用的函数为:
pickle.dump(obj, file, [,protocol]) 将obj 对象序列化存入已经打开的file 中。

  1. obj :想要序列化的obj 对象。
  2. file :文件名称。
  3. protocol :序列化使用的协议。如果该项省略,则默认为0。如果为负值或HIGHEST_PROTOCOL ,则使用最
    高的协议版本。
    pickle.load(file) 将file 中的对象序列化读出。

datawhale的第一次学习,到此就全部结束啦!
Python的学习还在继续,AI的路才真正开始,继续学习,继续努力,继续保持,继续参加datawhale更多学习内容,共同成长。

Datawhale 是一个专注于数据科学与AI 领域的开源组织,汇集了众多领域院校和知名企业的优秀学习者,聚合了一群有开源精神和探索精神的团队成员。Datawhale 以“for thelearner,和学习者一起成长”为愿景,用开源的理念去探索开源内容、开源学习和开源方案,建立起人与人,人与知识,人与企业和人与未来的联结,帮助学习者更好地成长。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值