ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

小甲鱼Python第029讲文件:一个任务 | 课后测试题及参考答案

2020-07-10 10:37:14  阅读:309  来源: 互联网

标签:begin word 课后 Python file print end 参考答案 name


动动手:

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

实现代码:

 1 def new_file(file_name):
 2     f = open (file_name , "w")
 3     print("请输入内容[单独输入':w'保存退出]:")
 4     while True:
 5         write_some = input()
 6         if write_some != ':w':
 7             f.write("%s\n" % write_some)
 8         else:
 9             break
10     f.close()
11 file_name = input("请输入文件名:")
12 new_file(file_name)

 

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

 实现代码:

 1 # 同一文件夹内比较
 2 def file_compare(file1,file2):
 3     f1 = open(file1,"r")
 4     f2 = open(file2,"r")
 5     count = 0
 6     differ = []
 7 
 8     for each_line1 in f1:
 9         each_line2 = f2.readline()
10         count += 1
11         if each_line1 != each_line2:
12             differ.append(count)
13 
14     f1.close()
15     f2.close()
16     return differ
17 
18 file1 = input("请输入需要比较的头一个文件名:")
19 file2 = input("请输入需要比较的后一个文件名:")
20 
21 differ = file_compare(file1,file2)
22 if len(differ) == 0:
23     print("两个文件完全一样。")
24 else:
25     print("两个文件有%d处不同" % len(differ) )
26     for each in differ:
27         print("第%d行不一样" % each)

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

 

 

 

 实现代码:

 1 def read_file(file,num):
 2     f = open(file)
 3     each_line_length = len(file)
 4     if num == 0:
 5         print(" ")
 6     if each_line_length <= num:
 7         print("文件行数只有%d行,已全部读取"% each_line_length)
 8         for each_line in f :
 9             print(each_line)
10     else:
11         # 读取前多少行
12         for i in range(num):
13             print(f.readline(),end = "")
14             
15     f.close()
16             
17 file = input("请输入要打开的文件名(带路径):")
18 num = int (input("请输入需要显示改文件前几行:"))
19 read_file(file,num)

方法2:

1 def file_view(file_name,file_num):
2     print("\n文件%s的前%s的内容如下:\n" % (file_name,file_num))
3     f = open(file_name)
4     for i in range(int(file_num)):
5         print(f.readline(),end = " ")
6     f.close()
7 file_name = input("请输入要打开的文件名(带路径):")
8 file_num = (input("请输入需要显示改文件前几行:"))
9 file_view(file_name,file_num)

3.在上一题的基础上进行扩展,用户可以随意输入需要显示的行数(如果输入13:21打印第13行到21行,输入为:21打印前21行,输入21:则打印从第21行开始到文件结尾所有内容)

 实现代码:

 1 def read_file(file,num1):
 2     f = open(file)
 3     list1 = list(num1.split(":"))
 4     # print(list1)
 5     begin = list1[0]
 6     end = list1[1]
 7     if begin == "":
 8         begin = 1
 9     if end =="":
10         end = -1
11     if begin ==1 and end == -1:
12         temp = "全文"
13         # 显示全文
14         # print(f.readline())
15     elif begin ==1:
16         temp = "从开始到%d行" % end
17     elif end == -1:
18         temp = "从%d行到最后" % begin
19     else:
20         temp = "从%s到%s行" % (begin,end)
21     print("文件%s" % file +temp+"的内容如下:" )
22 
23     begin = int(begin)-1
24     end = int (end )
25     lines = end-begin
26     each_line_length = len(file)
27     # 消耗掉。不显示内容
28     for i in range(begin):
29         f.readline()
30     if lines <0:
31         print(f.read())
32     else:
33         for j in range(lines):
34             print(f.readline(),end= "")
35     f.close()
36 
37 file = input("请输入要打开的文件名(带路径):")
38 num1 = input("请输入需要显示该文件行数【格式如13:21或:21或13:或:】:")
39 read_file(file,num1)

 

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

 

 实现代码:

 1 def file_replace(file_name,old_word,new_word):
 2     f = open(file_name)
 3     count= 0
 4     content = []
 5     num =0
 6     for eachline in f :
 7         num  += 1
 8         if old_word in eachline:
 9             count += eachline.count(old_word)
10             eachline = eachline.replace(old_word, new_word)
11             content.append(eachline)
12         else:
13             content.append(eachline)
14     print("文件中共有"+str(count)+"个"+old_word)
15     prompt = input("您确定要把所有的"+old_word+"替换成"+new_word+"吗?【YES/NO】")
16     if prompt  in ['YES','yes','Yes']:
17         f_write = open(file_name,"w")
18         for i in range(len(content)):
19             temp = str(content[i])
20             f_write.writelines(temp)
21         f_write.close()
22     f.close()
23 
24 file_name = input("请输入文件名:")
25 old_word = input("请输入需要替换的单词和字符:")
26 new_word = input("请输入新的单词或者字符:")
27 file_replace(file_name,old_word,new_word)

 

 

函数变量可多个!!

标签:begin,word,课后,Python,file,print,end,参考答案,name
来源: https://www.cnblogs.com/IT-NXXB/p/13277979.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有