1.有以上文件record.txt,将此文件三人对话每个人的内容单独保存一个文件,并每个文件中不包含对话人名
陈皓:没写完~
苗子瑾:第五个没写完
陈皓:第六个
陈皓:一遇到数学就蒙
苗子瑾:想想就头疼
苗子瑾:等我回宿舍交作业吧……
周愉:看见那个绿色的灯了么
周愉:全灭了我就到家了
陈皓:我家网络出门题了
陈皓:刚给联通打完电话,效率问题~
陈皓:效率问题
苗子瑾:这个图打不开
苗子瑾:这个图
with open('record.txt', encoding='utf-8') as f: c = [] m = [] z = [] for i in range(1, 14): s = f.readline() l = s.split(':')# 以冒号分割 #print(l) l1 = l[1] # 索引值为 0 的是人名,索引值为 1 的是对话内容 if l[0] == '陈皓': #print(l[0]) c.append(l1) #print(c) if l[0] == '苗子瑾': m.append(l1) if l[0] == '周愉': z.append(l1) s1 = ''.join(c) s2 = ''.join(m) s3 = ''.join(z) #print(s1,s2,s3) # 创建新的文本并写入 with open('c', mode='w+', encoding='utf-8') as f1: f1.write(s1) with open('m', mode='w+', encoding='utf-8') as f2: f2.write(s2) with open('z', mode='w+', encoding='utf-8') as f3: f3.write(s3)
2.读入用户输入的文件的路径和一个字符串和行数,将文件中的第n行行首插入用户输入的字符串
def fun(): fpath = input('请输入一个文件路径:') str = input('请输入一个字符串:') n = int(input('请输入要插入的行数:')) l = [] # 定义一个空列表 with open(fpath,'r') as f: for i in f: l.append(i) # 把打开的文件存入列表中 #print(l) l.insert(n-1,str) # 要在第几行插入字符串 s = ''.join(l) with open(fpath,'w+') as f: f.write(s) # 把新的内容写入文件 try: fun() except Exception as e: print('输入内容与提示不符!{}'.format(e))
3.下面只有一种方式不能打开文件,请尝试,并说明原因?
01. f = open('E:/test.txt', 'w')
02. f = open('E:\test.txt', 'w') # 必须双 \\ 或者前面加 r ,否则Python会将反斜杠作为转义符
03. f = open('E://test.txt', 'w')
04. f = open('E:\\test.txt', 'w')
4.打开一个文件使用open()函数的时候,通过设置文件的打开方式,决定打开的文件具有哪些性质,请总结都有哪些方式,并说明区别
'r'->只读 'w'->只写,文件已存在则清空,不存在则创建。 'a'->追加,写到文件末尾 'b'->二进制模式,比如打开图像、音频、word文件。 '+'->更新(可读可写) 'r+'不清空,不创建 默认是只读方式打开文件:open(file, mode=’r’)
5.如何将一个文件对象f中的数据存放到列表中
# 第一种方式 (遍历用append存入) with open('../text','r') as f: l = [] for i in f: l.append(i) print(l) # 第二种方式(用list函数) with open('../text','r') as f: l = list(f) print(l)
6.如果得到文件对象f的每一行数据,尝试使用多种方法
with open('../text','r') as f: n = f.readlines() #print(n[1]) l = [] for i in range(len(n)): l.append(n[i]) print(l)