程序1
在上一题的基础上扩展,用户可以随意输入要显示的行数。
如输入2:5表示打印第2行到第5行的内容;
输入:2表示打印从开头到第2行的内容;
输入4:表示打印从第4行到结尾的内容;
输入:表示打印全部的内容
方法2:
def file_read(filepath,line): #统计一共多少行 maxline= len(open(filepath).readlines()) if line.strip()==":": begin=1 end=maxline (begin,end)=line.split(":") if begin=='': begin=1 if end=='': end=maxline print(end) if begin==1 and end==maxline: t='的全文' elif begin==1: t='从开始到第%s行'%end elif end=='': t='从第%s行到结束'%begin else: t='从第%s行到第%s行'%(begin,end) print('文件%s%s的内容如下'%(filepath,t)) with open(filepath, 'r') as fd: lnum = 0 for line in fd: lnum += 1; if (lnum >= int(begin)) and (lnum <= int(end)): print(line) line fd.close() file=input(r'请输入要打印的文件路径:如(E:/file4.txt)') linetemp=input(r'请输入要打印的行数,如(2:5或:2或3:)') file_read(file,linetemp) python读文件的三个方法read()、readline()、readlines()详解 http://blog.csdn.net/u010039733/article/details/47858189 python 文件读写查找、替换相关简单操作 http://blog.csdn.net/liangrui1988/article/details/49539137
程序2
编写一个程序,实现“全部替换的功能”,程序运行图如下:
方法1:
1 def file_replace(filename,fstr,rstr): 2 f=open(filename) 3 content=[] 4 count=0 5 6 for eachline in f.read(): 7 if fstr in eachline: 8 count=eachline.count(fstr) 9 eachline=eachline.replace(fstr,rstr) 10 content.append(eachline) 11 12 decide=input(' 文件%s中共有%s个【%s】 您确定' 13 '要把所有的%s替换为%s吗? 【yes or no】 ' 14 %(filename,count,fstr,fstr,rstr)) 15 16 if decide in ['yes','Yes','YES']: 17 f=open(filename,'w') 18 f.writelines(content) 19 f.close() 20 21 filename=input("请输入文件名:") 22 fstr=input("请输入要替换的单词或字符:") 23 rstr=input("请输入要新的单词或字符:") 24 file_replace(filename,fstr,rstr)
方法2:
import re #python 正则表达式 re findall 方法 # 能够以列表的形式返回能匹配的子串。 def find_str(filename,fstr): #统计找到的字符数 count_fstr=0 f=open('E:/%s'%filename) strtemp=f.readlines() for i in strtemp: counti=re.findall(fstr,i) if len(counti)>0: count_fstr+=len(counti) f.close() print("文件%s中共有%d个%s"%(filename,count_fstr,fstr)) def replase_str(filename,fstr,rstr): #替换 print('开始替换....') f1=open('E:/%s'%filename,'r') fb1=open('E:/backup/%s'%filename,'w') strtemp2=f1.readlines() for i in strtemp2: fb1.write(i.replace(fstr,rstr)) print('替换完毕!') f1.close() fb1.close() filename=input("请输入文件名:") fstr=input("请输入要替换的单词或字符:") rstr=input("请输入要新的单词或字符:") #统计字符 find_str(filename,fstr) #判断是否替换 print('确定要把所有"%s"替换为"%s"吗?' % (fstr, rstr)) flag = input("YES/NO: ") if flag in ['yes','Yes','YES']: replase_str(filename,fstr,rstr) else: print('游戏结束!')
欢迎关注我的公众号:软件测试经验与教训。