今天继续昨晚的总结,整理第29课。
题1:
1.功能实现:
编写一个程序,接受用户的输入并保存为新的文件,程序如图所示:
2.分析程序如何写?
1)input()
2)f=open(file_name,”w”)写的方式,将文字写入文件
3)f.write()
3.程序如下:
def write_file(file_name):
f=open(file_name,"w")
print("请输入内容【单独输入':w'保存退出】")
while True:
write_some=input()
if write_some!=':w':
f.write("%s\n"%write_some)
else:
break
f.close()
file_name=input("请输入文件名:")
write_file(file_name)
F5,运行得到:
题2:
1.功能实现:
编写一个程序,比较用户输入的两个文件,如果不同,显示出所有不同处的行号与第一个不同字符的位置,,如图所示:
2.分析程序如何写?
1)len( )统计长度
2)count 统计多少
3)append( )追加
4) f.readline( ) 读取文件中的line
3.程序如下:
def compare_file(file1,file2):
f1=open(file1)
f2=open(file2)
count=0 #统计行数
differ=[] #统计不相同的数量
for line1 in f1:
line2=f2.readline() #读取f2中的文件
count+=1
if line1!=line2:
differ.append(count) #不同的内容,则统计
f1.close() #文件关闭
f2.close() #文件关闭
return differ
file1=input("请输入需要比较的第一个文件名:")
file2=input("请输入需要比较的第二个文件名:")
differ=compare_file(file1,file2)
if len(differ)==0:
print ("两个文件是相同的!")
else:
print ("两个文件存在%d处不同"%len(differ))
for each in differ:
print ("第%d行不一样"%each)
F5,运行得到:
题3:
1.功能实现:
编写一个程序,当用户输入文件名和行数(N)后,将文件的前N行显示出来。如图所示:
2.程序如何写?
1)f.readline() 读取文件的行数
2)print
3.程序如下:
#coding=utf-8 #防止乱码
def file_view(file_name,line_num):
print("\n文件%s的前%s的内容如下:"%(file_name,line_num))
f=open(file_name)
for i in range(line_num):
print (f.readline(),end='')
f.close()
file_name=input("请输入要打开的文件名:")
line_num=int(input("请输入需要显示该文件的前几行:"))
file_view(file_name,line_num)
F5,运行得到:
这课主要是关于文件读取f.readline(),以及字典等的灵活应用。