一个任务:将文件(record.txt)中的数据进行分割并按照以下规律保存起来:
#record.txt文件内容: 小客服:小甲鱼,今天有客户问你有没有女朋友? 小甲鱼:咦?? 小客服:我跟她说你有女朋友了! 小甲鱼:。。。。。。 小客服:她让你分手后考虑下她!然后我说:"您要买个优盘,我就帮您留意下~" 小甲鱼:然后呢? 小客服:她买了两个,说发一个货就好~ 小甲鱼:呃。。。。。。你真牛! 小客服:那是,谁让我是鱼C最可爱小客服嘛~ 小甲鱼:下次有人想调戏你我不阻止~ 小客服:滚!!! ================================================================================ 小客服:小甲鱼,有个好评很好笑哈。 小甲鱼:哦? 小客服:"有了小甲鱼,以后妈妈再也不用担心我的学习了~" 小甲鱼:哈哈哈,我看到丫,我还发微博了呢~ 小客服:嗯嗯,我看了你的微博丫~ 小甲鱼:哟西~ 小客服:那个有条回复“左手拿著小甲魚,右手拿著打火機,哪裡不會點哪裡,so easy ^_^” 小甲鱼:T_T ================================================================================ 小客服:小甲鱼,今天一个会员想找你 小甲鱼:哦?什么事? 小客服:他说你一个学生月薪已经超过12k了!! 小甲鱼:哪里的? 小客服:上海的 小甲鱼:那正常,哪家公司? 小客服:他没说呀。 小甲鱼:哦 小客服:老大,为什么我工资那么低啊??是时候涨涨工资了!! 小甲鱼:啊,你说什么?我在外边呢,这里好吵吖。。。。。。 小客服:滚!!! 小甲鱼的对话单独保存为boy_*.txt的文件(去掉小甲鱼:)小客服的对话单独保存为girl_*.txt的文件(去掉小客服:)文件中总共有三段对话,分别保存为boy_1.txt, girl_1.txt,boy_2.txt, girl_2.txt, boy_3.txt, gril_3.txt共6个文件(提示:文件中不同的对话间已经使用==========分割) 常规写法: #!/usr/bin/python3 file1 = open('D:/record.txt') girl = [] boy = [] count = 1 for each_line in file1: if each_line[:6] != '======': (role,spoken_line) = each_line.split(':',1) if role == '小甲鱼': boy.append(spoken_line) if role == '小客服': girl.append(spoken_line) else: file_boy_name = 'boy_' + str(count) + '.txt' file_girl_name = 'girl_' + str(count) + '.txt' boy_file = open(file_boy_name, 'w') girl_file = open(file_girl_name, 'w') boy_file.writelines(boy) girl_file.writelines(girl) boy_file.close() girl_file.close() boy = [] girl = [] count += 1 file_boy_name = 'boy_' + str(count) + '.txt' file_girl_name = 'girl_' + str(count) + '.txt' boy_file = open(file_boy_name, 'w') girl_file = open(file_girl_name, 'w') boy_file.writelines(boy) girl_file.writelines(girl) boy_file.close() girl_file.close() file1.close() 函数写法: #!/usr/bin/python3 def split_file(file_name): file1 = open(file_name) girl = [] boy = [] count = 1 for each_line in file1: if each_line[:6] != '======': (role,spoken_line) = each_line.split(':',1) if role == '小甲鱼': boy.append(spoken_line) if role == '小客服': girl.append(spoken_line) else: write_file(boy,girl,count) boy = [] girl = [] count += 1 write_file(boy,girl,count) file1.close() def write_file(a,b,c): file_boy_name = 'boy_' + str(c) + '.txt' file_girl_name = 'girl_' + str(c) + '.txt' boy_file = open(file_boy_name, 'w') girl_file = open(file_girl_name, 'w') boy_file.writelines(a) girl_file.writelines(b) boy_file.close() girl_file.close() file_name = input('请输入文件名:') split_file(file_name)动动手
编写一个程序,接受用户的输入并保存为新的文件,程序实现如图: ''' 从明天起,做一个幸福的人 喂马、劈柴、周游世界 从明天起,关心粮食和蔬菜 我有一所房子,面朝大海,春暖花开 从明天起,和每一个亲人通信 告诉他们我的幸福 那幸福的闪电告诉我的 我将告诉每一个人 给每一条河每一座山取一个温暖的名字 陌生人,我也为你祝福 愿你有一个灿烂的前程 愿你有情人终成眷属 愿你在尘世获得幸福 我只愿面朝大海,春暖花开 ''' def write_file(file_name): print('请输入内容【单独输入\':w\'保存并退出】') file1 = open(file_name,'w') while True: write_some = input() if write_some != ':w': file1.write(write_some) else: break file1.close() file_name = input('请输入文件名:') write_file(file_name) 编写一个程序,比较用户输入的两个文件,如果不同,显示出所有不同处的行号与第一个不同字符的位置,程序实现如图: def file_compare(file1,file2): f1 = open(file1) f2 = open(file2) count = 0 differ = [] for line1 in f1: line2 = f2.readline() count += 1 if line1 != line2: differ.append(count) f1.close() f2.close() return differ file1 = input('请输入文件名:') file2 = input('请输入另一个文件名:') diff = file_compare(file1,file2) if len(diff) == 0: print('两个完全一样!') else: print('两个文件共有【%d】处不同:' % len(diff)) for each in diff: print('第%d行不一样' % each) 编写一个程序,当用户输入文件名和行数(N)后,将该文件的前N行内容打印到屏幕上,程序实现如图: def file_view(file_name, line_num): print('\n文件%s的前%s的内容如下:\n' % (file_name, line_num)) f = open(file_name) for i in range(int(line_num)): print(f.readline(), end= '') f.close() file_name = input(r'请输入要打开的文件(C:\\test.txt):') line_num = input('请输入需要显示该文件前几行:') file_view(file_name, line_num) 要求在上一题的基础上扩展,用户可以随意输入需要显示的行数。(如输入13:21打印第13行到第21行,输入:21打印前21行,输入21:则打印从第21行开始到文件结尾所有内容) def file_view(file_name, line_num): if line_num.strip() == ':': begin = '1' end = '-1' (begin, end) = line_num.split(':') if begin == '': begin = '1' if end == '': end = '-1' if begin == '1' and end == '-1': prompt = '的全文' elif begin == '1': prompt = '从开始到%s' % end elif end == '-1': prompt = '从%s到结束' % begin else: prompt = '从第%s行到第%s行' % (begin, end) print('\n文件%s%s的内容如下:\n' % (file_name, prompt)) begin = int(begin) - 1 end = int(end) lines = end - begin f = open(file_name) for i in range(begin): # 用于消耗掉begin之前的内容 f.readline() if lines < 0: print(f.read()) else: for j in range(lines): print(f.readline(), end='') f.close() file_name = input(r'请输入要打开的文件(C:\\test.txt):') line_num = input('请输入需要显示的行数【格式如 13:21 或 :21 或 21: 或 : 】:') file_view(file_name, line_num) 编写一个程序,实现“全部替换”功能,程序实现如图: def file_replace(file_name, rep_word, new_word): f_read = open(file_name) content = [] count = [] for eachline in f_read: if rep_word in eachline: count.append(eachline.count(rep_word)) eachline = eachline.replace(rep_word, new_word) content.append(eachline) decide = input('\n文件 %s 中共有%s个【%s】\n您确定要把所有的【%s】替换为【%s】吗?\n【YES/NO】:' \ % (file_name, sum(count), rep_word, rep_word, new_word)) if decide in ['YES', 'Yes', 'yes']: f_write = open(file_name, 'w') f_write.writelines(content) f_write.close() f_read.close() file_name = input('请输入文件名:') rep_word = input('请输入需要替换的单词或字符:') new_word = input('请输入新的单词或字符:') file_replace(file_name, rep_word, new_word)转载于:https://www.cnblogs.com/wanbin/p/9514679.html
相关资源:JAVA上百实例源码以及开源项目