Python学习笔记系列——读写文件以及敏感词过滤器的实现
一、读文件
#打开文件,传入文件名和标识符,r代表读
f= open('\\Users\ZC\Desktop\zc.txt','r')
#调用read方法一次性读取文件的全部内容,存入内存,用str对象表示
print(f.read())
f.close() #使用with无论程序是否对错都会最后默认关闭文件。
with open('\\Users\ZC\Desktop\zc.txt','r') as f:
print(f.read()) #使用read()会一次性读取文件的所有内容,如果文件过大,内存会爆掉。可以反复调用read(size)方法,每次最多读取size个字节的内容。
#调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。
f= open('\\Users\ZC\Desktop\zc.txt','r')
for line in f.readlines():
print(line.strip()) #图片、视频等二进制文件,用rb模式打开
f= open('\\Users\ZC\Pictures\Camera Roll\8.jpg','rb')
print(f.read()) #读取非UTF-8编码的文本文件,需要在open()函数中传入encoding参数,errors参数表示遇到编码错误如何处理。
f = open('\\Users\ZC\Desktop\gbk.txt', 'r', encoding='gbk',errors='ignore')
print(f.read())
二、写文件
为了防止自己忘记写close(),一般使用with语句,默认自动关闭文件。
#调用open()函数传入标识符,w代表写入(wb写入二进制文件),如果文件不存在会自动创建。
f= open('\\Users\ZC\Desktop\zc.txt','w')
f.write('遇事不决,可问春风 \n')
f.close()
f=open('\\Users\ZC\Desktop\zc.txt','r')
print(f.read()) #w模式写入文件,会直接覆盖(即相当于删除后重建),如果想追加,可使用a(append)模式。
f= open('\\Users\ZC\Desktop\zc.txt','a')
操作系统在写入文件时,一般不会马上写到磁盘,而是放在内存中缓存,空闲时在写入。调用close(),就是让操作系统马上写入到磁盘中。
所以上面的代码在写入内容之后,在重新打开,才能调用read()查看文件的内容,否则会报错。
关于open()函数标识符的几个参数:
'r':读
'w':写
'a':追加
'r+' == r+w(可读可写,文件若不存在就报错(IOError))
'w+' == w+r(可读可写,文件若不存在就创建)
'a+' == a+r(可追加可写,文件若不存在就创建)
如果是对应的二进制文件,都加上一个b即可。
三、敏感词过滤器
#创建文件,写入内容
def text_create(name,msg):
desktop_path = 'C://Users/ZC/Desktop/'
full_path = desktop_path + name + '.txt'
file = open(full_path,'w')
file.write(msg)
file.close() #敏感词为SB,替换成***
def text_filter(word,cencored_word = 'SB',changed_word = '***'):
return word.replace(cencored_word,changed_word) #msg经过text_filter过滤之后存入到clean_msg,然后调用text_create写入。
def text_censored_create(name,msg):
clean_msg = text_filter(msg)
text_create(name,clean_msg)
text_censored_create('test','你是个SB')
Python学习笔记系列——读写文件以及敏感词过滤器的实现的更多相关文章
- Python学习笔记之从文件中读取数据
10-1 Python 学习笔记:在文本编辑器中新建一个文件,写几句话来总结一下你至此学到的Python 知识,其中每一行都以“In Python you can”打头.将这个文件命名为learnin ...
- python学习笔记系列----(一)python简介
一个月前,就按下决心要系统的学习下python了,虽然之前有学习过java,学习过c++,也能较为熟练的使用java做自动化测试看懂c++里的业务逻辑,但是实际上有那么多的东西自己还是不清楚,今天下定 ...
- Python学习笔记系列
1.小甲鱼 python 学习系列笔记
- python学习笔记系列----(八)python常用的标准库
终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...
- python学习笔记系列----(五)输入和输出
这一章主要是讲述程序展示其数据的一些方法,一般都是直接按照一定的格式输出在屏幕,或者写入到文件以便以后使用.按照一定格式的输出,在python中实际就是对str的操作,主要就是介绍了formart() ...
- Python学习笔记六:文件处理
一:打开文件 open(name,mode,[bufferSize]) name:文件路径 mode:文件打开方式 二:文件读取 read()方法:可以一次读取文件的全部内容,Python把内容读到内 ...
- python学习笔记系列----(四)模块
这一章主要是叙述了python模块的概念以及包的概念,还有它们的使用:收获也是大大的. 提起python文件,经常会听到3个名词,python脚本,python模块,python包.脚本的概念是从py ...
- python 学习笔记(十二) 文件和序列化
python 文件读写和序列化学习.## python文件读写`1 打开并且读取文件` f = open('openfile.txt','r') print(f.read()) f.close() ` ...
- python学习笔记系列----(二)控制流
实际开始看这一章节的时候,觉得都不想看了,因为每种语言都会有控制流,感觉好像我不看就会了似的.快速预览的时候,发现了原来还包含了对函数定义的一些描述,重点讲了3种函数形参的定义方法,章节的最后讲述了P ...
随机推荐
- BZOJ1597: [Usaco2008 Mar]土地购买(dp 斜率优化)
题意 题目链接 Sol 重新看了一遍斜率优化,感觉又有了一些新的认识. 首先把土地按照\((w, h)\)排序,用单调栈处理出每个位置第向左第一个比他大的位置,显然这中间的元素是没用的 设\(f[i] ...
- Drupal8入门文章推荐
1.<drupal 8 入门 > 2.<初探drupal8>
- HTML5和IOS、Android之间的交互
HTML5向IOS.Android传参: html给native传参需要注意三点: 1.判断终端设备,一般我们都是双系统开发,android和ios语言又不一样:我们需要用不同的方法给他们传递参数: ...
- Java 中父类怎么调用子类的方法?
父类能调用子类的方法吗? 答:能. 怎么做? ● 把子类传递到父类的有参构造中,然后调用. ● 使用反射的方式调用,你使用了反射还有谁不能调用的?! ● 父类调用子类的静态方法. 案例展示: pack ...
- LeetCode 544----Output Contest Matches
During the NBA playoffs, we always arrange the rather strong team to play with the rather weak team, ...
- [转]Linux内核最新的连续内存分配器(CMA)——避免预留大块内存
http://blog.csdn.net/21cnbao/article/details/7309757 在我们使用ARM等嵌入式Linux系统的时候,一个头疼的问题是GPU,Camera,HDMI等 ...
- 如何使用Nginx和uWSGI或Gunicorn在Ubuntu上部署Flask Web应用
你好!欢迎阅读我的博文,你可以跳转到我的个人博客网站,会有更好的排版效果和功能. 此外,本篇博文为本人Pushy原创,如需转载请注明出处:https://pushy.site/posts/151981 ...
- 132.1.001 Union-Find | 并查集
@(132 - ACM | 算法) Algorithm | Coursera - by Robert Sedgewick > Tip: Focus on WHAT is really impor ...
- socat 的神奇使用方式
目的是实现科* 学 * 上*网,现在记录一下流程 先在服务器上安装(比如美国,香港,台湾,马来的云主机)squid,easy_rsa, centos 下可以用yum直接安装 $ yum install ...
- WCF3.5 SP1 参考源码索引
http://www.projky.com/dotnet/WCF3.5SP1/Microsoft/InfoCards/AccessibilityApplicationManager.cs.htmlht ...