完成任务

#先男女分开,再对话段落分开
boy = []
girl =[]
count = 1
ori = open(r'C:\Users\Xuyunfeng\Desktop\record.txt')
for each_line in ori:if each_line[0] != '=':(role,word) = each_line.split(':',1)if role == '小甲鱼':boy.append(word)if role == '小客服':girl.append(word)else:file_name_boy = 'boy_' + str(count) + '.txt'file_name_girl = 'girl_' + str(count) + '.txt'boy_file = open(file_name_boy,'w')girl_file = open(file_name_girl,'w')boy_file.writelines(boy)girl_file.writelines(girl)boy = []girl = []count += 1
file_name_boy = 'boy_' + str(count) + '.txt'#因为原文档只有两行=号分隔符
file_name_girl = 'girl_' + str(count) + '.txt'
boy_file = open(file_name_boy,'w')
girl_file = open(file_name_girl,'w')
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()

使用函数分装更好看

#先男女分开,再对话段落分开
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,'w')girl_file = open(file_name_girl,'w')boy_file.writelines(boy)girl_file.writelines(girl)boy_file.close()girl_file.close()
def split_file(ori):boy = []girl =[]count = 1ori = open(r'C:\Users\Xuyunfeng\Desktop\record.txt')for each_line in ori:if each_line[0] != '=':(role,word) = each_line.split(':',1)if role == '小甲鱼':boy.append(word)if role == '小客服':girl.append(word)else:save_file(boy,girl,count)boy = []girl = []count += 1save_file(boy,girl,count)ori.close()
split_file(r'C:\Users\Xuyunfeng\Desktop\record.txt')

Task

0. 编写一个程序,接受用户的输入并保存为新的文件,程序实现如图:

file_name = input('请输入文件名:')
f = open(file_name,'w')
while 1:word = input('请输入内容【单独输入\':w\'保存退出】:')if word != ':w':f.write(word)else:break
f.close()


小甲鱼代码

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)# %s表示格式化字符串 \n表示输完字符串后会有换行符else:breakf.close()file_name = input('请输入文件名:')
file_write(file_name)



输入单独的input() 可能会好???
1. 编写一个程序,比较用户输入的两个文件,如果不同,显示出所有不同处的行号与第一个不同字符的位置,程序实现如图:


修改后

file1 = input('请输入需要比较的头一个文件名:')
file2 = input('请输入需要比较的另一个文件名:')
f1 = open(file1)
f2 = open(file2)
count = 0
for eachline1 in f1:eachline2 = f2.readline()count += 1if eachline1 != eachline2:print('第 %d 行不一样' % count)

小甲鱼代码

def file_compare(file1, file2):f1 = open(file1)f2 = open(file2)count = 0 # 统计行数differ = [] # 统计不一样的数量for line1 in f1:line2 = f2.readline()count += 1if line1 != line2:differ.append(count)f1.close()f2.close()return differfile1 = input('请输入需要比较的头一个文件名:')
file2 = input('请输入需要比较的另一个文件名:')differ = file_compare(file1, file2)if len(differ) == 0:print('两个文件完全一样!')
else:print('两个文件共有【%d】处不同:' % len(differ))for each in differ:print('第 %d 行不一样' % each)


2. 编写一个程序,当用户输入文件名和行数(N)后,将该文件的前N行内容打印到屏幕上,程序实现如图:

file = input('请输入要打开的文件(C:\\test.txt):')
f1 = open(file)
count = input('请输入需要显示该文件的前几行:')
print('文件'+ file + '的前' + str(count) + '的内容如下:')
count = 0
while count < 12:print(f1.readline())count += 1
f.close()


小甲鱼代码

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)

3. 呃,不得不说我们的用户变得越来越刁钻了。要求在上一题的基础上扩展,用户可以随意输入需要显示的行数。(如输入13:21打印第13行到第21行,输入:21打印前21行,输入21:则打印从第21行开始到文件结尾所有内容)

file = input('请输入要打开的文件(C:\\test.txt):')
f1 = open(file)
count = input('请输入需要显示的行数【格式如 13:21 或:21 或 21:】:')
(start,end) = count(':',1)
if start == '' and end != 0:print('\n文件%s从开始到第%s行的内容如下:\n' % (file, end))for i in range(int(end)):print(f1.readline(),end='')
if end == '' and start != 0:print('\n文件%s从第%s行到末尾的内容如下:\n' % (file, start))for i in range(int(start)):f1.readline()f1.seek(0,1)for eachline in f1:print(eachline)
if end == '' and start == '':f1.seek(0,0)print('\n文件%s的全文的内容如下:\n' % file')for eachline in f1:print(eachline)
else:print('\n文件%s从第%s行到第%s行的内容如下:\n' % (file, start,end))for i in range(int(start)):f1.readline()f1.seek(0,1)count = 0for eachline in f1:while count < int(end)-int(start):print(eachline)
f1.close()


小甲鱼代码

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' % endelif end == '-1':prompt = '从%s到结束' % beginelse:prompt = '从第%s行到第%s行' % (begin, end)print('\n文件%s%s的内容如下:\n' % (file_name, prompt))begin = int(begin) - 1end = int(end)lines = end - beginf = 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)

4. 编写一个程序,实现“全部替换”功能,程序实现如图:

零基础入门学习Python(27)-文件2相关推荐

  1. 零基础入门学习Python(26)-文件1

    什么是文件 Windows是以扩展名指出文件是什么类型的:.exe是可执行文件格式:.txt是文本文件:.avi是视频格式:.mp4是视频格式:.jpg是图片格式 打开文件 在Python中,使用op ...

  2. 零基础学python 视频_零基础入门学习PYTHON(第2版)(微课视频版)

    小甲鱼畅销图书重磅升级,针对Python 3.7,通过生动的实例,让读者在实践中理解概念,在轻松.愉快中学会Python! 本书提倡理解为主,应用为王.因此,只要有可能,小甲鱼(注:作者)都会通过生动 ...

  3. 零基础python必背代码-零基础入门学习python 96集全

    零基础入门学习python 96集全 第000讲 愉快的开始(视频+课件)xa0 第001讲 我和Python第一次亲密接触(视频+课件)xa0 第002讲 用Python设第一个游戏(视频+课件+源 ...

  4. 零基础学python pdf-笔记《零基础入门学习Python(第2版)》PDF+课件+代码分析

    通过自学编程,感觉到基础知识很重要,越到后面越能发现这一点,光记住是不行的,还要灵活运用,要多调试代码,计算机就是一个不断练习,不断遇到问题,解决问题的工种,要根据实际的业务能想到对应的语法,实际项目 ...

  5. 零基础学python pdf-Python pdf(零基础入门学习Python)V1.0 最新版

    Python pdf(零基础入门学习Python)是一款功能强劲专业实用的Python电子书籍.想要零基础入门学习Python?那就快试试绿色先锋小编推荐的Python pdf最新版下载使用.由作者小 ...

  6. 第031讲:永久存储,腌制一缸美味的泡菜 | 学习记录(小甲鱼零基础入门学习Python)

    (标答出处: 鱼C论坛) <零基础入门学习Python> 测试题: 0.pickle的实质是什么? pickle的实质是利用一些算法,将你的数据对象腌制成二进制文件,存储在磁盘上,也可以放 ...

  7. python dict 合并同类项_零基础入门学习Python,这13个Python惯用小技巧一定要收藏...

    原标题:零基础入门学习Python,这13个Python惯用小技巧一定要收藏 Python的小技巧很多,入门容易精通难!在进阶的路上,有没有什么好的技巧和好的方法,就是不断总结,不断记笔记!尤其是好的 ...

  8. 零基础入门python小甲鱼-小甲鱼零基础入门学习Python百度云下载 | 宅男君

    Python编程语言可以在不同平台上使用,比如Windows.MAC.Linux操作系统.通常情况下,一个Python程序在你自己的Windows系统上运行,也可以在别人的MAC系统上运行.Pytho ...

  9. python零基础入门教程百度云-小甲鱼零基础入门学习Python百度云下载 | 宅男君

    Python编程语言可以在不同平台上使用,比如Windows.MAC.Linux操作系统.通常情况下,一个Python程序在你自己的Windows系统上运行,也可以在别人的MAC系统上运行.Pytho ...

  10. 小甲鱼python教程视频怎么样-小甲鱼零基础入门学习Python视频教程全套96集

    资源介绍 教程名称: 小甲鱼零基础入门学习Python视频教程全套96集 课程简介: xa0 xa0 Python具有跨平台特点,Python可以在各种不同类型的计算机上运行,Windows.MAC. ...

最新文章

  1. leetcode算法题--最长快乐字符串★
  2. cnn识别cifar10、cifar100(pytorch)
  3. XCTF-高手进阶区:bug
  4. Opengl :公转与自转
  5. Microsoft Teams的Outgoing Webhook开发入门
  6. Eclipse之Android项目名有红感叹号的解决办法
  7. java 俄文,俄文字体在word里面是什么
  8. 项目wangkangluo1
  9. vmware传东西到linux后文件变小,在VMWARE的Linux虚拟机上删除大容量文件后硬盘空间大小还不变怎么办?虚拟机虚拟机的各种应用及问题...
  10. 计算机应用中英文缩写ai表示,2010黑龙江省全国计算机等级考试二级VB笔试试卷及参考答案考试重点和考试技巧...
  11. eova中日期框、查找框、下拉框取值方法
  12. 佳蓝php智能应答系统|在线客服 v1.0,佳蓝PHP智能应答系统|在线客服 v1.0
  13. CSMA/CD和拥塞控制AIMD其实是一回事!
  14. 主成分分析(PCA)
  15. Java练习习题,百钱买百鸡问题,用100文钱买鸡,公鸡5文钱一只,母鸡3文钱一只,小鸡3只1文钱
  16. 【前端】HTML标签(下)
  17. android 极光推送解绑,app集成极光推送笔记(angular js)
  18. JavaScript数组内置方法-知识
  19. 写个脚本薅区块鱼羊毛
  20. zzuli OJ 1088: 手机短号 (多实例)

热门文章

  1. 3月编程语言排行已出!Java第二,那霸主是谁?
  2. 优秀!一鼓作气学会“一致性哈希”,就靠这 18 张图了
  3. ES的跨索引查询有多便利?对比下分库分表、分片更直观
  4. 从一道面试题谈谈一线大厂码农应该具备的基本能力
  5. 软件项目随着数据量的不断增加,有什么优化方案么?
  6. 【高并发】又一个朋友面试栽在了Thread类的stop()方法和interrupt()方法上!
  7. 各大厂这个档次分配,大佬们有什么看法?
  8. 北大博士网恋被骗7400RMB,聊天记录惨遭曝光!
  9. 推荐7款实用强大的神器工具,建议你先收藏,总有一天你会用到!
  10. 王兴和张一鸣和我们的互联网启蒙