with open(文件操作的几种方法)

“”"

python文件操作的几种方法:

读:r,rb,r+,r+b
写:w,wb,w+,w+b
加:a,ab,a+,a+b
tell():获取光标的位置
seek:调整光标的位置
flush:强制刷新

“”"

一. 读文件(r,rb,r+)

1.read()-单字符读取

    with open('1.txt', encoding = 'utf-8', mode = 'r')as f:
        txt = f.read()
    print(txt)

2.read(n)按照字符个数n去读

    with open('1.txt', encoding = 'utf-8', mode = 'r')as f:
        txt = f.read(6)   # 只读取6个字符
    print(txt)

3.readline()按行读,只输出第一行

    with open('1.txt', encoding = 'utf-8', mode = 'r')as f:
        txt = f.readline(6)  # 只读取第一行的前6个字符
    print(txt)

4. readlines()按行读,返回全部行的一个列表

    with open('1.txt', encoding = 'utf-8', mode = 'r')as f:
        txt = f.readlines()   
    print(txt)

5.for读取

    with open('1.txt', encoding = 'utf-8', mode = 'r')as f:
        for txt in f:
            print(txt)

6.rb–读取非文本文件(生成二进制)

    with open('1.jpg',  mode = 'rb')as f:
        txt=f.read()
        print(txt)

7.文件的读写r+,必须先读再加,顺序不能错误

文件必须存在,不存在会报错

    with open('1.txt', encoding='utf-8', mode='r+')as f:
        f.write('11111111')    # 文件必须存在,指针在开头写入并替换
    with open('1.txt', encoding='utf-8', mode='r+')as f:
        txt=f.read()
        f.write('11111111')   # 文件必须存在,指针在结尾写入

二.写文件(w,wb)–先清空原内容,再写入新内容

如果文件存在,先清空原内容,再写入新内容;如果文件不存在,会创建文件,并写入内容

1.w-清空写入

    with open('1.txt', encoding='utf-8', mode='w')as f:
        f.write('新写入的文本内容')

2.wb写入非文本文件

    with open('1.jpg',  mode = 'wb')as f:
        f.write(b'新写入的字符串(不能为汉字)')   # 以二进制写入新内容

三.文件的追加(a,ab)

文件的追加a,ab,a+,a+b,没有文件,创建文件,追加内容,有文件在源文件的最后面加入内容

1. a-追加

    with open('1.txt', encoding='utf-8', mode='a')as f:
        f.write('要追加的文本内容')  #在结尾追加

2. a+追加

    with open('1.txt', encoding='utf-8', mode='a+')as f:
        f.write('要追加的文本内容')   # 在结尾追加

3. ab-追加

with open('1.jpg',  mode = 'ab')as f:
    f.write(b'要追加的字符串(英文或数字)')  # 以二进制形式追加在文件的结尾
        

四.其它操作模块

tell()获取光标的位置,先读再获取

    with open('1.txt', encoding='utf-8', mode='r+')as f:
        print(f.tell())    # 光标位置在开头,为0
        txt=f.read()
        print(f.tell())    # 光标位置在结尾,为txt字符串长度

seek调整光标的位置,tell获取光标的位置

    with open('1.txt', encoding='utf-8', mode='r+')as f:
        f.seek(8)
        f.write('22222222')  # 光标移动到8后的同长度字符串替换

flush强制刷新(好像没啥用,暂时没用到)

with open('1.txt', encoding='utf-8', mode='r+')as f:
        f.write('22222222')
        f.flush()

你可能感兴趣的:(python,热门,python,文件操作,with,open,os,自然语言处理)