动动手

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

代码如下:f_name = input('请输入文件名:')

f = open(f_name, 'wt')

print("请输入内容【单独输入':w'保存退出】:")

str1 = input()

while str1 != ':w':

f.write('%s\n' % str1)

str1 = input()

f.close()

演示代码:>>>

================== RESTART: I:\Python\小甲鱼\test003\test0.py ==================

请输入文件名:something.txt

请输入内容【单独输入':w'保存退出】:

从明天起,做一个幸福的人

喂马、劈柴,周游世界

从明天起,关心粮食和蔬菜

我有一所房子,面朝大海,春暖花开

:w

1.编写一个程序,比较用户输入的两个文件,如果不同,显示所有不同处的行号与第一个不同字符的位置,程序实现如图:

代码如下:list1 = []

diff_count = 0

count = 0

file1_line_count = 0

file2_line_count = 0

f_name1 = input('请输入需要比较的头一个文件名:')

f_name2 = input('请输入需要比较的另一个文件名:')

file1 = open(f_name1, 'rt')

file2 = open(f_name2, 'rt')

for file1_line in file1:

file1_line_count += 1

for file2_line in file2:

file2_line_count += 1

file1.seek(0,0)

file2.seek(0,0)

if file1_line_count > file2_line_count:

for file1_line in file1:

count += 1

file2_line = file2.readline()

if file1_line != file2_line:

diff_count += 1

list1.append(count)

else:

for file2_line in file2:

count += 1

file1_line = file1.readline()

if file2_line != file1_line:

diff_count += 1

list1.append(count)

if diff_count == 0:

print('两个文件完全相同')

else:

print('两个文件共有【%d】处不同:' %diff_count)

for each in list1:

print('第%d行不一样' %each)

测试结果如下,相对原来的代码,主要是解决了如果文件一和文件二前几行一致,而后几行不一致,而且文件二比文件一长,如下

文件一(我.txt):

从明天起,做一个幸福的人

喂马、劈柴,周游世界

从明天起,关心粮食和蔬菜

我有一所房子,面朝大海,春暖花开

文件二(something.txt):

从明天起,做一个幸福的人

喂马、劈柴,周游世界

从明天起,关心粮食和蔬菜

我有一所房子,面朝小海,春暖花开

你是

注:此处something.txt是经过第4题的修改的,是“面朝小海”

原始程序会认为两个文件一样,修改后测试结果如下:================== RESTART: I:\Python\小甲鱼\test003\test0.py ==================

请输入需要比较的头一个文件名:我.txt

请输入需要比较的另一个文件名:something.txt

两个文件共有【4】处不同:

第4行不一样

第5行不一样

第6行不一样

第7行不一样

================== RESTART: I:\Python\小甲鱼\test003\test0.py ==================

请输入需要比较的头一个文件名:something.txt

请输入需要比较的另一个文件名:我.txt

两个文件共有【4】处不同:

第4行不一样

第5行不一样

第6行不一样

第7行不一样

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

代码如下:input_showlines_flag = 1#显示行数是否超过文件行数标志位

file_lines_count = 0

file_name = input('请输入要打开的文件(C:\\test.txt):')

file = open(file_name, 'rt')

show_lines_count = int(input('请输入需要显示该文件前几行:'))

for each_line in file:

file_lines_count += 1

while input_showlines_flag:

if show_lines_count > file_lines_count:

print('文件只有%d行' % (file_lines_count))

show_lines_count = int(input('请重新输入行数:'))

else:

file.seek(0,0)#由于for each_line in file时函数指针已指到最后一位,所以要指回首位

print('文件%s的前%d行的内容如下:' % (file_name, show_lines_count))

print()

while show_lines_count:

show_lines = file.readline()

print(show_lines)

show_lines_count -= 1

break

print('===================================================')

演示效果:>>>

================== RESTART: I:\Python\小甲鱼\test003\test0.py ==================

请输入要打开的文件(C:\test.txt):something.txt

请输入需要显示该文件前几行:6

文件只有4行

请重新输入行数:6

文件只有4行

请重新输入行数:6

文件只有4行

请重新输入行数:3

文件something.txt的前3行的内容如下:

从明天起,做一个幸福的人

喂马、劈柴,周游世界

从明天起,关心粮食和蔬菜

===================================================

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

代码如下:file_lines_count = 0

file_name = input('请输入要打开的文件(C:\\test.txt):')

file = open(file_name, 'rt')

show_lines_count = input('请输入需要显示该文件的行数【格式如 13:21 或 :21 或 21:】:')

if show_lines_count.strip() == ':':

begin = 1

end = -1

(begin, end) = show_lines_count.split(':')

if begin == '':

begin = 1

if end == '':

end = -1

begin = int(begin)

end = int(end)

if begin == 1 and end == -1:

print('文件%s的全文的内容如下:' % file_name)

for each_line in file:

print(each_line, end = '')

elif begin == 1 and end != -1:

print('文件%s从开始到第%d行的内容如下:' % (file_name, end))

while end:

show_lines = file.readline()

print(show_lines, end = '')

end -= 1

elif begin != 1 and end == -1:

print('文件%s从第%d行到结尾的内容如下:' % (file_name, begin))

while begin:

not_show_lines = file.readline()

begin -= 1

show_lines = file.read()

print(show_lines, end = '')

else:

print('文件%s从第%d行到第%d行的内容如下:' % (file_name, begin, end))

while begin:

not_show_lines = file.readline()

begin -= 1

for x in range(end - begin + 1):

show_lines = file.readline()

print(show_lines, end = '')

file.close()

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

代码如下:list1 = []

old_words_number = 0

file_name = input('请输入文件名:')

file = open(file_name, 'rt')

old_words = input('请输入需要替换的单词或字符:')

new_words = input('请输入新的单词或字符:')

for each_line in file:

if old_words in each_line:

old_words_number = each_line.count(old_words)

each_line = each_line.replace(old_words, new_words)

list1.append(each_line)

print('文件%s中共有%d个【%s】' % (file_name, old_words_number, old_words))

print('您确定要把所有的【%s】替换为【%s】吗?' % (old_words, new_words))

flag = input('【YES/NO】:')

if flag.upper() == 'YES':

file_write = open(file_name, 'wt')

file_write.writelines(list1)

file_write.close()

else:

print('文件%s未更改!' % file_name)

file.close()

演示效果:================== RESTART: I:\Python\小甲鱼\test003\test0.py ==================

请输入文件名:something.txt

请输入需要替换的单词或字符:大

请输入新的单词或字符:小

文件something.txt中共有1个【大】

您确定要把所有的【大】替换为【小】吗?

【YES/NO】:yes

文档修改前如下:

从明天起,做一个幸福的人

喂马、劈柴,周游世界

从明天起,关心粮食和蔬菜

我有一所房子,面朝大海,春暖花开

文档修改后:

从明天起,做一个幸福的人

喂马、劈柴,周游世界

从明天起,关心粮食和蔬菜

我有一所房子,面朝小海,春暖花开

小甲鱼python笔记_小甲鱼《零基础学习Python》课后笔记(二十九):文件——一个任务...相关推荐

  1. python语言的单行注释以井号开头_推荐|零基础学习Python基础知识

    原标题:推荐|零基础学习Python基础知识 Python是一种面向对象.解释型计算机程序设计语言.语法简洁清晰,强制用空白符作为语句缩进. Python具有丰富和强大的库,又被称为胶水语言.能把其他 ...

  2. 自学python考哪些证书-给零基础学习Python的小伙伴的四个建议

    一,学习可以慢但不要停 我断断续续学习python已经有两年了,现在水平一般算是入门了,偶尔写写小脚本,没有正式做项目,最近在看python面向对象编程,打算利用django做个项目,这个进度确实很慢 ...

  3. 自学python需要多长时间-零基础学习Python开发需要多长时间?

    原标题:零基础学习Python开发需要多长时间? Python开发技术目前可谓是互联网行业编程界的新宠,不少零基础想要进入IT行业的人员都纷纷加入学习Python开发.零基础学习Python开发技术需 ...

  4. python入门经典100题-零基础学习Python开发练习100题实例(1)

    零基础学习Python开发练习100题实例(1) 2018-02-25 09:37:59 2854浏览 1.题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序 ...

  5. 零基础学python用哪本书好-零基础学习python推荐几本书?

    为大家推荐两本python书籍,希望能对你有所帮助. <python编程从入门到实践> /> 本书是一本针对所有层次的Python 读者而作的Python 入门书.全书分两部分:第一 ...

  6. 零基础学习python入门书_零基础学习Python不可错过的5本书籍

    原标题:零基础学习Python不可错过的5本书籍 Python作为目前编程开发的主流语言之一,在企业中的应用范围越来越广,广阔的发展前景吸引了很多小伙伴想要入行Python,下面小U就为大家介绍一下零 ...

  7. 小甲鱼python游戏代码_【小甲鱼】零基础学习python pygame 飞机大战可执行源代码...

    [实例简介] [小甲鱼]零基础学习python pygame 飞机大战可执行源代码,觉得挺有意思,故此分享. [实例截图] [核心代码] 飞机大战 └── 飞机大战 ├── bullet.py ├── ...

  8. 零基础学python 视频_全网最全Python视频教程真正零基础学习Python视频教程 490集...

    Python Web开发-进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程 [课程简介] 这是一门Python Web开发进阶课程,手把手教你用Python开发完整的商业 ...

  9. python零基础书推荐_零基础学习Python(Python初学者、Python入门)常见问题:资料、社区、书籍推荐...

    Python web开发 QQ学习群:338985564 ,欢迎各位加入,一起学习. 本文针对零基础的,想学习Python者.本文会不定时更新. 一.学会使用搜索引擎,尤其是Google. 推荐阅读文 ...

  10. 明日科技的python书籍怎么样_零基础学习Python不可错过的5本书籍

    3.Python基础教程(第3版) 作者:[挪]芒努斯·利·海特兰德(Magnus Lie Hetland) 出版社:人民邮电出版社 Python3.5编程从入门到实践,Python入门佳作,机器学习 ...

最新文章

  1. 卷积神经网络(CNN)_相关知识
  2. android 焦点的作用,Android中的视图焦点Focus的详细介绍
  3. android汉字笔顺数据库,Chinese stroke order app
  4. oracle数据库安装自动化,自动化Oracle数据库静默安装
  5. 计算机用并行传输还是串行,网线RJ45是并行传输还是串行
  6. Drools 7.4.1.Final参考手册(六) 用户手册
  7. python创建控件,用 IronPython 创建和调用用户控件.doc
  8. php 分布式 session,浅析PHP分布式中Redis实现Session的方法
  9. python笔记06_进程vs线程
  10. 走过软件定义网络“来时的路”
  11. UnicodeDecodeError: 'gbk' codec can't decode byte 0xfe in position 575056: illegal multibyte sequenc
  12. Opencv之给图片加水印
  13. ElasticSearch7 集群安装和配置
  14. Teradata sql 常用语句总结
  15. 常见的网络端口号及其分类
  16. 【Linux】嵌入式Linux系统的移植(下篇:BootLoader,以U-Boot为例)
  17. 学习总结-《父与子的编程之旅》chapter 20
  18. 如何用计算机设计衣服,怎样才能成为出色的服装设计师_电脑服装设计图怎么画...
  19. 美剧中的英文粗语脏话知多少?
  20. 软件人生之这些年做项目带新人的经验总结

热门文章

  1. sql server2008处理笛卡儿积的逻辑——记一次解决疑惑
  2. 哪位能推荐一下广州比较好的IT公司啊,不尽感激
  3. mysql在 union 与group by后order by排序混乱
  4. Android APT(编译时代码生成)最佳实践
  5. qt向服务器传输文字_使用Qt实现客户端服务端聊天和传输文件
  6. 刻录光盘的结构及原理
  7. 游戏开发中如何设计一个撤销重做系统DoUnDo
  8. 从清华园镜像站下载方法
  9. pgsql sql中获取当前时间_PostgreSQL 如何获取当前日期时间及注意事项
  10. 华为[ENSP]用户界面的用户权限级别