前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python学习笔记(15)-文件替换

Python学习笔记(15)-文件替换

作者头像
张树臣
发布2018-05-15 16:58:57
1.1K0
发布2018-05-15 16:58:57
举报
程序1
代码语言:javascript
复制
在上一题的基础上扩展,用户可以随意输入要显示的行数。
如输入2:5表示打印第2行到第5行的内容;
输入:2表示打印从开头到第2行的内容;
输入4:表示打印从第4行到结尾的内容;
输入:表示打印全部的内容

方法2:

代码语言:javascript
复制
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)
代码语言:javascript
复制
python读文件的三个方法read()、readline()、readlines()详解
http://blog.csdn.net/u010039733/article/details/47858189

python 文件读写查找、替换相关简单操作
http://blog.csdn.net/liangrui1988/article/details/49539137

程序2

编写一个程序,实现“全部替换的功能”,程序运行图如下:

方法1:

代码语言:javascript
复制
def file_replace(filename,fstr,rstr):
    f=open(filename)
    content=[]
    count=0

    for eachline in f.read():
        if fstr in eachline:
            count=eachline.count(fstr)
            eachline=eachline.replace(fstr,rstr)
        content.append(eachline)

    decide=input('\n文件%s中共有%s个【%s】\n您确定'\
                 '要把所有的%s替换为%s吗?\n【yes or no】 '\
                 %(filename,count,fstr,fstr,rstr))

    if decide in ['yes','Yes','YES']:
        f=open(filename,'w')
        f.writelines(content)
        f.close()

filename=input("请输入文件名:")
fstr=input("请输入要替换的单词或字符:")
rstr=input("请输入要新的单词或字符:")
file_replace(filename,fstr,rstr)

方法2:

代码语言:javascript
复制
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('游戏结束!')

往期回顾

Python学习笔记(1)-介绍

Python学习笔记(2)

Python学习笔记(3)-数据类型

Python学习笔记(4)-循环

Python学习笔记(5)-循环

Python学习笔记(6)-循环

Python学习笔记(7)

Python学习笔记(8)-四个小程序

Python学习笔记(9)-函数

Python学习笔记(10)-回文联和统计入参

Python学习笔记(11)-递归

Python学习笔记(12)-字典

Python学习笔记(13)-集合

Python学习笔记(14)-文件

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试经验与教训 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档