08-python基础知识-文件操作

文件操作

目录管理(os)

  • 示例:

    import os
    
    # 执行命令
    # 清屏
    # os.system('cls')
    # 调出计算器
    # os.system('calc')
    
    # 操作系统类型,nt表示windows,posix表示类unix
    # print(os.name)
    
    # 获取环境变量
    # print(os.environ['path'])
    # print(os.environ.get('pathxx', 'default'))
    # 与上式等价
    # print(os.getenv('pathxx', 'default'))
    print(os.getenv('xxx', 'default'))
    
  • 查看当前工作目录

    print(os.getcwd())
    
  • 创建目录

    # 新建目录
    # os.mkdir('test')
    # 不能创建中间目录,否则会失败
    # os.mkdir('a/b/c')
    # 可以创建中间目录
    os.makedirs('a/b/c')
    
  • 删除目录

    # 删除目录
    # os.rmdir('test')
    # 只能删除空目录,不能删除有内容的目录
    os.rmdir('a')
    
  • 重命名

    os.rename('test2', 'test')
    
  • 查看文件信息

    stat = os.stat('01-os.py')
    print(stat.st_size)
    
  • 查看指定目录内容

    print(os.listdir(os.getcwd()))
    
  • path使用

    import os
    
    # 目录拼接
    # print(os.path.join('abc/def', 'hello.py'))
    
    # 提取目录
    # print(os.path.dirname('abc/def/hello.py'))
    # print(os.path.dirname('C:/Apache24/htdocs/code/day08'))
    
    # 提取文件
    # print(os.path.basename('abc/def/hello.py'))
    
    # 切割路径与文件名
    # dir, file = os.path.split("abc/def/hello.py")
    # print(dir, file)
    
    # 切割路径名与后缀
    # print(os.path.splitext('abc/def/hello.py'))
    # print(os.path.splitext('hello.py'))
    
    # 判断文件是否存在,可以是目录
    # print(os.path.exists('a'))
    
    # 判断是否是目录
    # print(os.path.isdir('01-os.py'))
    # print(os.path.isdir('a'))
    
    # 判断是否是文件
    # print(os.path.isfile('01-os.py'))
    # print(os.path.isfile('a'))
    
    # 获取文件大小,只适用于文件,不能是目录
    print(os.path.getsize('01-os.py'))
    print(os.path.getsize('a'))
    

文件管理

  • 打开文件

    • 示例
    fp = open('00-test.txt')
    
    • 参数
    file:操作的文件名
    mode:打开模式
    encoding:编码方式,通常不指定,系统会自动识别
    
    • 打开方式
    r:只读方式,文件不存在会报错
    w:只写方式,文件不存在则创建,存在则清空
    a:追加方式,文件不存在则创建,存在则打开(不会清空内容),只能向末尾添加内容
    r+:在r的基础上添加写的权限
    w+:在w的基础上添加读的权限
    a+:在a的基础上添加读的权限
    
    在上面打开方式上添加一个字符'b',表示已二进制方式进行操作:rb、wb、ab、rb+、wb+、ab+
    说明:没有添加b的方式的打开,默认都是以字符串形式操作,带b的方式都是以bytes形式操作的
    
    • 编码方式
    ASCII:美国信息交换标准代码(128)
    ansi:扩展的ASCII(256)
    gb2312:中国的ansi
    gbk:扩充的gb2312
    
    unicode:万国码,能够将所有国家的所有字符进行统一编码
    utf-8:可变长度的unicode实现方案,并且对中文支持良好
    
  • 关闭文件

    fp.close()
    
  • 文件读写

    # 判断是否可读
    # print(fp.readable())
    # 判断是否可写
    # print(fp.writable())
    
    # 读取指定长度内容,默认读取全部
    # content = fp.read(5)
    # print(content)
    
    # 写操作
    # fp.write('123')
    
  • 操作位置

    # 获取文件操作位置
    print(fp.tell())
    
    # 设置操作位置
    # 参数1:偏移量
    # 参数2:参考位置,0表示开头,1表示当前位置,2表示文件末尾
    # 当以bytes方式操作时没有问题,但是以str方式操作时只能设置从开头的偏移
    fp.seek(-3, 2)
    

bytes类型

  • 示例:

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

环境变量

  • 设置:set 名称=值

  • 获取:set 名称

  • 代码:

    # print(os.environ['path'])
    # print(os.environ.get('pathxx', 'default'))
    # 与上式等价
    # print(os.getenv('pathxx', 'default'))
    print(os.getenv('xxx', 'default'))
    

文件目录

  • 目录分隔符
    • Windows:’/’、’'都行
    • 类unix:’/’
    • 建议:统一使用’/’
  • 目录名词
    • 相对目录:有参考的目录叫相对目录
      • . 表示当前目录
      • … 表示上一级目录
    • 绝对目录:没有参考的目录叫绝对目录
      • windows:以盘符开头的目录
      • 类unix:以’/'开头的目录

猜你喜欢

转载自blog.csdn.net/weixin_44147782/article/details/85267334
今日推荐