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

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

原文地址:https://www.cnblogs.com/scios/p/8274450.html