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 ...
随机推荐
- 零基础全面学习HTML
基础框架 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" co ...
- 前端构建工具 Gulp.js 上手实例
在软件开发中使用自动化构建工具的好处是显而易见的.通过工具自动化运行大量单调乏味.重复性的任务,比如图像压缩.文件合并.代码压缩.单元测试等等,可以为开发者节约大量的时间,使我们能够专注于真正重要的. ...
- paramiko的安装与使用
paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接,支持在远程登录服务器执行命令和上传下载文件的功能. 安装 pycrypto下载地址: ...
- Oracle EBS AR 收款API收款方法标识无效
1.确认是不是没有收款方法 methods那个表的问题2.查看收款方法那个LOV的问题3.界面录入 是否会有问题 碰到的问题是 收款日期比较早时 找不到对应的收款方法 银行账户需要重新设置
- 使用eclipse遇到的unable to install breakpoint的问题
调试一个tomcat工程,设置好断点,启动工程,结果出现了下面的错误: 继续运行,再进入断点之前,还会再度提示,但是最终会命中断点. 使用CGLIB查找关键字,了解到CGLIB是一个AOP的拦截库,想 ...
- C语言const与#define
const 定义的是变量不是常量,只是这个变量的值不允许改变是常变量!带有类型.编译运行的时候起作用存在类型检查. define 定义的是不带类型的常数,只进行简单的字符替换.在预编译的时候起作用,不 ...
- Jquery 保留N位小数,且千位以上用","号隔开
s:数据Value n:保留小数位数 function jinEFmoney(s, n) { if (s == '' || s == null) return '0.00'; n = n > 0 ...
- spring配置datasource
1.使用org.springframework.jdbc.datasource.DriverManagerDataSource 说明:DriverManagerDataSource建立连接是只要有连 ...
- python基础_类型_dict
#dict字典,其实与其叫字典不如叫key-value更合适,不知道这个名是怎么来的,这个可以用来搞用户名和密码,不过搞这个不用数据库是不是显得太low了 #用花括号{}扩起来,逗号分隔每个元素,每个 ...
- EXC_BAD_ACCESS错误
EXC_BAD_ACCESS错误 一直都是使用ARC开发,咋就莫名其妙的出现这种EXC_BAD_ACCESS错误. 一直都是是怀疑在block中有着特殊处理,导致了使用时出现了这种错误,查找了好久.. ...