您的位置:首页 > 其它

文件管理,包括文件打开操作,读写的12种方式的介绍,编码方式简介,文件读写的种种操作以及关闭操作和bytes类型的简单介绍

2018-08-01 12:16 232 查看

文件管理

打开文件(open)

  • 示例

fp = open('00-test.txt', 'r')
  • 参数

file:操作的文件名
mode:打开的方式
endoding:编码方式,通常不用指定,系统会自动识别
  • 打开方式

  • 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实现方案,而且对中文支持比较友好。

  • 文件读写

  • # 判断是否可读
    # print(fp.readable())
    # 读取指定长度内容
    # content = fp.read(5)
    # 读取一行
    # content = fp.readline()
    # 读取所有的行,返回一个列表
    # content = fp.readlines()

    # 判断是否可写
    # print(fp.writable())
    # 写入内容
    # fp.write('hello')

  • 操作位置

  • # 文件操作位置
    # print(fp.tell())

    # 设置操作位置
    # 参数1:偏移量
    # 参数2:参考位置,0:开头,1:当前位置,2:结束
    # 以bytes形式读写seek没有问题,以str型是读写的seek只能设置从开头偏移
    fp.seek(5, 0)

  • 文件删除

  • os.remove('文件名')

  • 关闭文件

  • fp.close()

  • bytes类型

  • 示例:

  • # s = b'hello'
    # print(s)
    # print(type(s))

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

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

  • 代码:

  • # 打开文件
    # fp = open('00-test.txt', 'rb+')
    
    # 文件操作位置
    # print(fp.tell())
    
    # 设置操作位置
    # 参数1:偏移量
    # 参数2:参考位置,0:开头,1:当前位置,2:结束
    # fp.seek(5, 0)
    
    # 判断是否可读
    # print(fp.readable())
    # 读取指定长度内容
    # content = fp.read(5)
    # print(fp.tell())
    # 读取一行
    # content = fp.readline()
    # 读取所有的行,返回一个列表
    # content = fp.readlines()
    # print(content)
    # content = fp.read(5)
    # print(content)
    
    # 判断是否可写
    # print(fp.writable())
    # 写入内容
    # fp.write(b'hello')
    
    # 关闭文件
    # fp.close()

bytes:

# s = b'hello'
# print(s)
# print(type(s))

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

# 解码:bytes => str
b = s.decode('utf-8')
print(b, type(b))
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐