编写一个程序,接受用户的输入并保存为新的文件,程序实现如图:
从明天起,做一个幸福的人
喂马、劈柴、周游世界
从明天起,关心粮食和蔬菜
我有一所房子,面朝大海,春暖花开
从明天起,和每一个亲人通信
告诉他们我的幸福
那幸福的闪电告诉我的
我将告诉每一个人
给每一条河每一座山取一个温暖的名字
陌生人,我也为你祝福
愿你有一个灿烂的前程
愿你有情人终成眷属
愿你在尘世获得幸福
我只愿面朝大海,春暖花开
def file_write(filename):
f=open(filename,'w')
print('输入#q,保存退出')
while True:#为了不断接收输入
contents=input('请输入内容:')
if contents!='#q':
f.write('%s\n'%contents) #输入内容并换行
else:
break
f.close()
filename=input('请输入文件名:')
file_write(filename)
如果不是退出键,就写入并写入换行
1. 编写一个程序,比较用户输入的两个文件,如果不同,显示出所有不同处的行号与第一个不同字符的位置,程序实现如图:
def file_compare(f1,f2):
count=0
differ=[]
f1=open(f1)
f2=open(f2)
for each_line1 in f1:
each_line2=f2.readline() #在f2中直接读取行
count=count+1
if each_line1!=each_line2:
differ.append(count) #出现问题,保存行数
f1.close()
f2.close()
print('两个文件共有%d处不同'%len(differ)) #计算列表的长度,就是错误个数
for each in differ: #直接遍历列表里面的值
print('第%d行不一样'%each)
f1_name=input('请输入需要比较的第一个文件名:')
f2_name=input('请输入需要比较的第二个文件名:')
file_compare(f1_name,f2_name)
使用readline,建立一个列表differ,differ.append()
2. 编写一个程序,当用户输入文件名和行数(N)后,将该文件的前N行内容打印到屏幕上,程序实现如图:
def qian_n(filename,n):
f1=open(filename)
m=int(n)
for i in range(m):
print(f1.readline())#逐行阅读,会自动进入下一行
f1.close()
filename=input('请输入文件名:')
n=input('请输入需要显示该文件前几行:')
qian_n(filename,n)
值得学习的是f.readline()函数,迭代前n行
编写一个程序,实现“全部替换”功能,程序实现如图:
def file_replace(filename,rep_word,new_word):
count=0
content=[]
f1=open(filename)
for each_line in f1:
if rep_word in each_line:
count=count+each_line.count(rep_word) #计算每一行中出现的次数
#计算句子中出现req_word的个数
each_line=each_line.replace(rep_word,new_word) #用旧的词替换新的词
content.append(each_line)
print('文件%s中共有%d个%s'%(filename,count,rep_word))
decide=input('您确定要把所有的【%s】替换为【%s】:'%(rep_word,new_word))
if decide in ['YES','yes','Yes']:
f2=open(filename,'w') #如果要进行写,一定要标注好是’w'模式
f2.writelines(content) #大量的字符和列表写入使用writelines
f2.close()
f1.close()
filename=input('请输入文件名:')
rep_word=input('请输入需要替换的单词或字符:')
new_word=input('请输入新的单词或字符:')
file_replace(filename,rep_word,new_word)
使用了each_line.replace()替换,each_line.count()计数。