程序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:

 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:

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. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  2. Python Click 学习笔记(转)

    原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发 ...

  3. Python Flask学习笔记之模板

    Python Flask学习笔记之模板 Jinja2模板引擎 默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板.Flask提供的render_template函数把Jinja ...

  4. Python Flask学习笔记之Hello World

    Python Flask学习笔记之Hello World 安装virtualenv,配置Flask开发环境 virtualenv 虚拟环境是Python解释器的一个私有副本,在这个环境中可以安装私有包 ...

  5. PHP操作XML文件学习笔记

    原文:PHP操作XML文件学习笔记 XML文件属于标签语言,可以通过自定义标签存储数据,其主要作用也是作为存储数据. 对于XML的操作包括遍历,生成,修改,删除等其他类似的操作.PHP对于XML的操作 ...

  6. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  7. Python文件学习

    Python文件学习 文章 Python文件学习 open函数 基本的用法模式:file_object=open('',access_mode='r',buffering=-1) 其中access_m ...

  8. 获取字段唯一值工具- -ArcPy和Python案例学习笔记

    获取字段唯一值工具- -ArcPy和Python案例学习笔记   目的:获取某一字段的唯一值,可以作为工具使用,也可以作为函数调用 联系方式:谢老师,135-4855-4328,xiexiaokui# ...

  9. Python高级学习笔记

    Python高级学习笔记,此笔记中包含Linux操作系统.Html+CSS+JS.网络协议等. 所有思维导图为本人亲手所画,请勿用于商用. 大哥们,求点赞哦. 第一天笔记:链接 第二天笔记:链接 第三 ...

随机推荐

  1. poj 1723 中位数

    最近在看一些中位数的东西,然后顺便也看了些题目.poj 1723不仅要求到水平位置的最短距离和,还要求水平都相邻的排成一排的最短距离和,即士兵都站成一列. 到y轴的距离好办,按y轴坐标排序,求中位数, ...

  2. Java finally语句是在try或catch的retrurn之前还是之后执行

    若try或catch中没有return语句,则按正常执行流,从上到下,finally里的所有修改都生效. 这里讨论的是try或catch里有return或throw语句的情形,此情形比较让人迷惑. 总 ...

  3. 同一标签内多个css规则在页面中如何显示?

    这两天在学习css涉及到内联.外联.嵌入对页面的影响: 1.内联式-----将css代码直接写在html中.用 <style> 标记将样式定义为内部块对象.示例代码如下如下: <st ...

  4. 总结这两天连续干掉的bug In 创新实训 智能自然语言交流系

    临近项目合并,在pre合并中出现相当多的hug,遂记之 ps:这只是总结一下提纲,具体的方法在前文的博文中都详细记录.总结了. 平台的移植兼容性,虽然是跨平台的java,但是依旧有很多的意外: 1.从 ...

  5. android 在HTML中显示bitmap

    逻辑:将bitmap转化为Base64,通过调用HTML中的JS,显示到HTML中 (1)android代码 public String bitmaptoString(Bitmap bitmap) { ...

  6. Python之2维list转置、旋转及其简单应用

    给一个矩阵,顺时针旋转顺序输出其元素,例如: 对于矩阵: [ 1, 2, 3 ] [ 4, 5, 6 ] [ 7, 8, 9 ] 输出为: 1,2,3,6,9,8,7,4,5 def transpos ...

  7. numpy opencv matlab eigen SVD结果对比

    参考 https://zhuanlan.zhihu.com/p/26306568 https://byjiang.com/2017/11/18/SVD/ http://www.bluebit.gr/m ...

  8. c 变量的存储类型auto等(基础知识)和c函数变量

    总结 1).在c语言中每一个变量和函数有两个属性:数据类型和数据的存储类别. 2). 对数据型(如整型.字符型等).存储类别指的是数据在内存中存储的方式. 存储方式分为两大类: 静态存储类和动态存储类 ...

  9. 使 Finder 显示 文件夹路径

    显示路径: cd ~ defaults write com.apple.finder _FXShowPosixPathInTitle -bool TRUE killall Finder 不显示路径: ...

  10. Lucene系列四:Lucene提供的分词器、IKAnalyze中文分词器集成、扩展 IKAnalyzer的停用词和新词

    一.Lucene提供的分词器StandardAnalyzer和SmartChineseAnalyzer 1.新建一个测试Lucene提供的分词器的maven项目LuceneAnalyzer 2. 在p ...