python文件、目录、读写相关操作

OS模块

  • 基本使用
    import os

    # 查看操作系统类型,nt表示windows,posix表示类unix
    print(os.name)
    
    # 可以执行系统命令
    # 清空屏幕
    # os.system('cls')
    
    # 启动计算器
    # os.system('calc')
    
    # 环境变量
    # 所有环境变量
    # env = os.environ
    # for key in env:
    #     print(key, env[key])
    
    # 获取指定环境变量
    print(os.environ['path'])
    # 通过函数获取
    print(os.environ.get('pathxx', 'xxx'))
    # 上面的简化书写方案
    print(os.getenv('xxx', '123456'))
    
  • 环境变量

    • windows下设置:set 名称=值
    • windows下获取:set 名称
    • 注意:代码获取临时环境变量需要在同一终端执行程序

目录表示

  • 相对目录:有参考的目录

    • .表示当前目录,./通常可以省略
    • …表示上一级目录,…/…/表示上上一级目录
  • 绝对目录:

    • windows:以盘符开头的目录
    • 类unix:以/开头的目录
  • 目录分隔符:
    平台 说明
    windows / 或
    类unix /
    建议 /

  • 目录相关操作
    import os

    # 查看当前工作目录
    print(os.getcwd())
    
    # 创建目录
    # os.mkdir('test')
    # 不能创建中间目录
    # os.mkdir('test/abc')
    
    # 创建目录,可以创建中间目录
    # os.makedirs('test/abc')
    
    # 删除目录:只能删除空目录
    # os.rmdir('hello')
    # os.rmdir('test')
    
    # 删除文件
    # os.remove('00-xxx.txt')
    
    # 修改名称:可以是目录
    # os.rename('test', 'hello')
    # 也可以是文件
    # os.rename('00-test.txt', '00-xxx.txt')
    
    # 查看目录信息
    # print(os.listdir('.'))
    
    # 查看状态信息:目录时size有问题
    # print(os.stat('01-renshi.py'))
    # stat = os.stat('01-renshi.py')
    stat = os.stat('hello')
    print(stat.st_size)
    
  • path
    from os import path
    import os

    # 拼接目录:目录分隔符会自动处理
    print(path.join('abc/def/', 'hello.py'))
    
    # 目录提取
    print(path.dirname('abc/def/hello.py'))
    print(path.dirname(os.getcwd()))
    
    # 文件名提取
    print(path.basename('abc/def/hello.py'))
    print(path.basename(os.getcwd()))
    
    # 切割路径与文件名
    dir_name, file_name = path.split('abc/def/hello.py')
    print(dir_name, file_name)
    
    # 切割文件名与后缀
    print(path.splitext('hello.py'))
    
    # 判断路径文件是否存在
    print(path.exists('hello'))
    
    # 判断是否是目录文件
    print(path.isdir('hello'))
    
    # 判断是否是普通文件
    print(path.isfile('hello'))
    
    # 判断是否是绝对目录
    print(path.isabs('hello'))
    print(path.isabs(os.getcwd()))
    
    # 转换为绝对目录
    print(path.abspath('hello'))
    
    # 获取指定路径的文件大小,获取目录时有问题
    print(path.getsize('01-renshi.py'))
    

文件操作

  • 打开文件
    fp = open(‘00-test.txt’)

  • 打开模式

    模式 说明
    r 只读方式,若文件不存在则会报错
    w 只写方式,文件不存在则创建,存在则清空
    a 追加方式,文件不存在则创建,文件存在则打开(不会清空内容)
    r+ 在r方式的基础上添加写的权限
    w+ 在w方式的基础上添加读的权限
    a+ 在a方式的基础上添加读的权限

  • 在上面的打开方式后加一个字符’b’,表示以字节流的方式进行读写操作,于是又有了6中方式:rb、wb、ab、rb+、wb+、ab+,不加b是以字符串的形式进行读写操作。

  • bytes类型

    b = b'hello'
    
    print(b, type(b))
    
    # 编码: str => bytes
    b2 = 'hello'.encode('utf-8')
    print(b2)
    
    # 解码: bytes => str
    s = b2.decode('utf-8')
    print(s, type(s))
    
  • 编码方式

    编码 说明
    ASCII 美国信息交换标准代码(128)
    ANSI 扩展的ASCII
    GB2312 中国的ANSI
    GBK 扩充的GB2312
    unicode 万国码,将所有国家的字符全部编码
    utf-8 是一种可变长度的unicode实现方案,对中文支持比较友好

  • 文件读写
    fp = open(‘00-test.txt’, ‘r+’)

    if fp.readable():
        # 设置操作位置:字节流方式打开没有问题,字符串方式会出问题
        # 参数1:偏移量
        # 参数2:参考位置,0表示开头、1表示当前位置、2表示末尾
        fp.seek(5, 0)
        # 返回文件操作的位置
        print(fp.tell())
        print(fp.read(5))
        # print(fp.tell())
        # print(fp.read(5))
        # 每次读取一行内容
        # print(fp.readline(), end='')
        # print(fp.readline())
        # 一次性读取所有的行,返回一个列表
        # print(fp.readlines())
    else:
        print('文件不可读')
    
    if fp.writable():
        pass
        # fp.write(b'123456')
    else:
        print('文件不可写')
    
    fp.close()
    
  • 关闭文件
    fp.close()

练习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值