【Python学习日记】B站小甲鱼:文件

文件的打开模式(open的参数)

 

文件对象的方法

f.close()  关闭文件

f.read(size = -1)  读出size个字符

f.readline()  按行读取文本

f.tell()  可以返回当前指针的位置

f.seek(offset, from)  在文件中移动指针,从from开始移动offset个字节。比如f.seek(0,0)可以把指针重置到首位

list()  可以把文件内容变成列表

用下面的方法按行可以读取出文件的内容

for eachline in f:
    print(eachlie)

 

文件的写入

f.write()  在写完执行f.close()以后就可以写入文件

f.write()  按行写

 

练习-文件分割

def save_file(chuang,bb,count):
    file_name_chuang = 'chuang_' + str(count) + '.txt'
    file_name_bb = 'bb_' + str(count) + '.txt'

    chuang_file = open(file_name_chuang, 'w', encoding="utf-8")
    bb_file = open(file_name_bb, 'w', encoding="utf-8")

    chuang_file.writelines(chuang)
    bb_file.writelines(bb)

    chuang_file.close()
    bb_file.close()

def split_file(filename):
    f = open(filename,"rt", encoding="utf-8")

    chuang = []
    bb =[]
    count =1

    for eachline in f:
        if eachline[:6] != '======':
            #字符串分隔
            (role,linespoken) = eachline.split('',1)
            if role =='':
                chuang.append(linespoken)
            if role == '彬彬':
                bb.append(linespoken)
        else:
            save_file(chuang,bb,count)

            chuang = []
            bb = []
            count +=1

    save_file(chuang,bb,count)

    f.close()

split_file('record.txt')

这个练习的操作文件是一个以 “=======”为分割行的对话,闯说一句,bb说一句。通过冒号:将文件的每一行进行分隔,写入新的文件保存。

使用了两个方法 分隔split_file()和保存save_file()

posted @ 2020-08-25 16:25  JodyJoy  阅读(210)  评论(1编辑  收藏  举报