一、文件
- 利用open()函数打开文件,第一个参数为文件名(带路径)
 要记得关闭文件!f.close()
 或者使用with函数,with open(‘py1.txt’) as f:
 在文件没有被调用时,会自动关闭文件
f = open('C:\\Users\\王\Desktop\\py1.txt')
>>><_io.TextIOWrapper name='C:\\Users\\王\\Desktop\\py1.txt' mode='r' encoding='cp936'>
open()函数的参数
 
在打开文件时,要利用转义符号
-  文件的打开方式 
-  文件对象的方法 
新建一个文件并写入内容
def file_write(file_name):
    f = open(file_name, 'w')
    print('请输入内容【单独输入\':w\'保存退出】:')
    while True:
        write_some = input()
        if write_some != ':w':
            f.write('%s\n' % write_some)
        else:
            break
    f.close()
file_name = input('请输入文件名:')
file_write(file_name)
二、os模块
os 模块提供了非常丰富的方法用来处理文件和目录。
| 常用os函数 | 其作用 | 
|---|---|
| os.chdir() | 切换工作目录,相当于cd的命令 | 
| os.listdir() | 列出某目录下所有的目录和文件 | 
| os.path.getsize(name) | 获取文件大小,以字节为单位 | 
| os.getcwd() | 获取当前工作目录,即当前python脚本工作路径。 | 
| os.path.split() | 获取一个列表,list[0]是路径,list[1]是文件名 | 
| os.path.splitext() | 获取文件名和扩展名[0]为文件名,[1]为拓展名 | 
| op.isdir(path) | 判断path所对应是否为已存在的目录(即是否为文件夹) | 
详情在这
三、永久存储(pickle模块)
-  pickle的实质就是利用一些算法将你的数据对象“腌制”成二进制文件,存储在磁盘上,当然也可以放在数据库或者通过网络传输到另一台计算机上. 
-  pickle存储数据的方法 
 pickle.dump(data, file) # 第一个参数是待存储的数据对象,第二个参数是目标存储的文件对象,注意要先使用’wb’的模式open文件哦^ _ ^
-  pickle读取数据的方法 
 pickle.load(file) # 参数是目标存储的文件对象,注意要先使用’rb’的模式open文件哦^ - ^
将一个文件按照要求分成不同的文件并永久存储
import pickle
def save_file(boy, girl, count):
    file_name_boy = 'boy_' + str(count) + '.txt'
    file_name_girl = 'girl_' + str(count) + '.txt'
    boy_file = open(file_name_boy, 'wb') # 记得一定要加 b 吖
    girl_file = open(file_name_girl, 'wb') # 记得一定要加 b 吖
    pickle.dump(boy, boy_file)
    pickle.dump(girl, girl_file)
    boy_file.close()
    girl_file.close()
def split_file(file_name):
    count = 1
    boy = []
    girl = []
    f = open(file_name)
    for each_line in f:
        if each_line[:6] != '======':
            (role, line_spoken) = each_line.split(':', 1)
            if role == '小甲鱼':
                boy.append(line_spoken)
            if role == '小客服':
                girl.append(line_spoken)
        else:
            save_file(boy, girl, count)
            boy = []
            girl = []
            count += 1 
    save_file(boy, girl, count)
    f.close()
split_file('record.txt')










