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 ...
随机推荐
- CSS通过设置position定位的三种常用定位
CSS中可以通过设置为元素设置一个position属性值,从而达到将不同的元素显示在不同的位置,或者固定显示在某一个位置,或者显示在某一层页面之上. position的值可以设为relative,ab ...
- CentOS7系列--1.5CentOS7配置vim
CentOS7配置vim 1. 安装vim [root@centos7 ~]# yum -y install vim-enhanced Loaded plugins: fastestmirror ba ...
- ArcGIS for JavaScript 关于路径开发的一些记录(二)
又是高度集中开发路径模块的一天.真希望自己以后都可以如此的专注和高效(虽然知道很难一直都保持这样的状态,我会坚持的~哈哈哈) 言归正传,今天开发了途径点的功能和改进了些相关起点.终点的代码.先说一下我 ...
- leetCode题解之修剪二叉查找树
1.题目描述 Given a binary search tree and the lowest and highest boundaries as L and R, trim the tree so ...
- Enum,Int,String的互相转换
Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举. 注意:枚举类型的基类 ...
- 6.JXL操作Excel
一.简介 jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI.其中功能相对POI比较弱一点.但jExcelA ...
- C#中关于增强类功能的几种方式
C#中关于增强类功能的几种方式 本文主要讲解如何利用C#语言自身的特性来对一个类的功能进行丰富与增强,便于拓展现有项目的一些功能. 拓展方法 扩展方法被定义为静态方法,通过实例方法语法进行调用.方法的 ...
- 关于springMVC的一些常用注解
①:@RequestMapping("/helloworld").@RequestMapping(value="/emp", method=RequestMet ...
- Xcode 5.1 编译模拟器以及真机都能使用的静态库
Xcode 5.1.dmg 下载地址 http://pan.baidu.com/s/1jGJpKm6 1.新建 Framework & Library 工程 我起名叫ShowInfo,下面为其 ...
- 封装CoreGraphics的API简化绘图操作
封装CoreGraphics的API简化绘图操作 效果 说明 1. 将CoreGraphics的API接口抽象为对象,让绘图变得简单易懂 2. 简化常用的绘制操作 3. 源码长期更新 源码 https ...