zoukankan      html  css  js  c++  java
  • Python 文件学习笔记

    程序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('游戏结束!')

    欢迎关注我的公众号:软件测试经验与教训。 

  • 相关阅读:
    JAVA并发之ReentrantLock源码(一)
    java并发之线程池
    Quine--输出程序源码的程序(java)
    【leetcode】Weekly Contest 92
    【java集合类】ArrayList和LinkedList源码分析(jdk1.8)
    【leetcode】Weekly Contest 91
    牛客2018.6模拟考编程题
    MFC 完全自定义控件
    图形学中求平面方程系数以及法向量
    std::function解决函数重载绑定
  • 原文地址:https://www.cnblogs.com/scios/p/8274450.html
Copyright © 2011-2022 走看看