python codecs.open()及文件操作-文本处理 with open
20210810
以二进制并追加的形式写入文件
20210731
f.write(’\n’)
换行写入
20210625
https://blog.csdn.net/a543402496/article/details/78747305
python:大文件迭代器,GB级别,read(),readline(),readlines()以及语法糖with open()
read(size)当size不指定时,会将文件全部内容读取
readline()一次只读取一行即遇到‘\n’返回
readlines()读取整个文件,并返回列表,一行为一个元素
https://blog.csdn.net/qq_41717584/article/details/83241243
python中open() read() readline() readlines()方法详解
20210222
https://www.cnblogs.com/yc3110/p/10620483.html
读写参数
path='./../../data/test/'
save=open(path+'text_ready','a+') #追加方式写入
i=0
with open(path+'test.txt','r') as read: #读出for line in read:if i <10:line=line.replace(' ',',')save.write(line)else:break
save.close()
文件读取:
codecs.open(filepath,method,encoding)
filepath--文件路径
method--打开方式,r为读,w为写,rw为读写
encoding--文件的编码,中文文件使用utf-8
一. python打开文件代码如下:
f = open("d:\test.txt", "w")
说明:
第一个参数是文件名称,包括路径;
第二个参数是打开的模式mode
'r':只读(缺省。如果文件不存在,则抛出错误)
'w':只写(如果文件不存在,则自动创建文件)
'a':附加到文件末尾
'r+':读写
如果需要以二进制方式打开文件,需要在mode后面加上字符"b",比如"rb""wb"等
二、python读取文件内容f.read(size)
参数size表示读取的数量,可以省略。如果省略size参数,则表示读取文件所有内容。
f.readline()读取文件一行的内容 f.readlines()读取所有的行到数组里面[line1,line2,...lineN]。
在避免将所有文件内容加载到内存中,这种方法常常使用,便于提高效率。
三、python写入文件f.write(string)
将一个字符串写入文件,如果写入结束,必须在字符串后面加上"\n",然后f.close()关闭文件
四、文件中的内容定位
f.read()读取之后,文件指针到达文件的末尾,如果再来一次f.read()将会发现读取的是空内容,如果想再次读取全部内容,必须将定位指针移动到文件开始:
f.seek(0)
这个函数的格式如下(单位是bytes):f.seek(offset, from_what)
from_what表示开始读取的位置,offset表示从from_what再移动一定量的距离,比如f.seek(10, 3)表示定位到第三个字符并再后移10个字符。
from_what值为0时表示文件的开始,它也可以省略,缺省是0即文件开头。下面给出一个完整的例子:
- f = open('/tmp/workfile', 'r+')
- f.write('0123456789abcdef')
- f.seek(5) # Go to the 6th byte in the file
- f.read(1)
- f.seek (-3, 2) # Go to the 3rd byte before the end
- f.read(1)
五、关闭文件释放资源文件操作完毕,一定要记得关闭文件f.close()
,可以释放资源供其他程序使
只是ASCII或者gbk编码格式的的文件读写,比较简单,读写如下:
- # coding=gbk
- f = open('c:/intimate.txt','r') # r 指示文件打开模式,即只读
- s1 = f.read()
- s2 = f.readline()
- s3 = f.readlines() #读出所有内容
- f.close()
- f = open('c:/intimate.txt','w') # w 写文件
- 11 f.write(s1)
- 12 f.writelines(s2) # 没有writeline
- 13 f.close()
六. f.writelines
不会输出换行符。
python unicode文件读写:
- # coding=gbk
- import codecs
- f = codecs.open('c:/intimate.txt','a','utf-8')
- f.write(u'中文')
- s = '中文'
- f.write(s.decode('gbk'))
- f.close()
- f = codecs.open('c:/intimate.txt','r','utf-8')
- s = f.readlines()
- f.close()
- for line in s:
- print line.encode('gbk')
python代码文件的编码
py文件默认是ASCII编码,中文在显示时会做一个ASCII到系统默认编码的转换,这时就会出错:SyntaxError: Non-ASCII character。需要在代码文件的第一行或第二行添加编码指示:
# coding=utf-8 ##以utf-8编码储存中文字符
- print '中文'像上面那样直接输入的字符串是按照代码文件的编码来处理的,如果用unicode编码,有以下2种方式:
- s1 = u'中文' #u表示用unicode编码方式储存信息
- s2 = unicode('中文','gbk')
unicode是一个内置函数,第二个参数指示源字符串的编码格式。
decode是任何字符串具有的方法,将字符串转换成unicode格式,参数指示源字符串的编码格式。
encode也是任何字符串具有的方法,将字符串转换成参数指定的格式。
python字符串的编码
用 u'汉字' 构造出来的是unicode类型,不用的话构造出来是str类型
str的编码是与系统环境相关的,一般就是sys.getfilesystemencoding()得到的值
所以从unicode转str,要用encode方法
从str转unicode,所以要用decode
例如:
- # coding=utf-8 #默认编码格式为utf-8
- s = u'中文' #unicode编码的文字
- print s.encode('utf-8') #转换成utf-8格式输出
- print s #效果与上面相同,似乎默认直接转换为指定编码
我的总结:
- u=u'unicode编码文字'
- g=u.encode('gbk') #转换为gbk格式
- print g #此时为乱码,因为当前环境为utf-8,gbk编码文字为乱码
- str=g.decode('gbk').encode('utf-8') #以gbk编码格式读取g(因为他就是gbk编码的)并转换为utf-8格式输出
- print str #正常显示中文
安全的方法:
s.decode('gbk','ignore').encode('utf-8′) #以gbk编码读取(当然是读取gbk编码格式的文字了)并忽略错误的编码,转换成utf-8编码输出
因为decode的函数原型是decode([encoding], [errors='strict'])
,可以用第二个参数控制错误处理的策略,默认的参数就是strict,代表遇到非法字符时抛出异常;
如果设置为ignore,则会忽略非法字符;
如果设置为replace,则会用?取代非法字符;
如果设置为xmlcharrefreplace,则使用XML的字符引用。
http://www.taodudu.cc/news/show-64060.html
相关文章:
- 命令行带参数启动--命令行相关问题 代码规范
- 编程规范问题
- bdwp
- tensorflow问题
- docker坑
- python技巧提升
- java 环境配置
- 学习目录
- tornado 异步两种实现形式 通过回调可以利用
- tornado压力测试
- web服务器tornada,flask问题
- 虚拟环境的创建
- flash,tornada demo
- pycharm导包错误
- java 各种问题
- jar包的安装
- Intellij IDEA 添加jar包
- 解释器和编译器
- 异步IO驱动
- 并发 IO多路复用 select 非asyncio
- 文件句柄和文件描述符的区别和理解指针
- Python中yield和yield from的用法
- list和dataframe
- 如何用python读取文本中指定行的内容
- Python中re的match、search、findall、finditer区别正则
- 中文字符
- 编辑距离理解
- Python Re 模块超全解读!详细
- 正则表达式高级
- 正则的实例用法,删除包含某些字符的字符串
python codecs.open()及文件操作-文本处理 with open相关推荐
- Python批量设置pptx文件中文本框边框与填充样式(含20分钟视频讲解)
近期会议: 10月30-11月1日 全国高校Python课程高级研修班(苏州) 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清 ...
- Python中的File(文件)操作
Python中的File(文件)操作 针对磁盘中的文件的读写.文件I/O I 输入(input) O输出(Output) 文件操作步骤:1.打开文件 2.读写文件 3.关闭文件 写入文件的操作:(把大 ...
- 详解Python中的File(文件)操作
目录 Python中的File(文件)操作 写入文件的操作: 读取文件的操作: 一.文件操作相关函数 1. open() 打开文件 2. seek() 设置文件指针的位置 3. write() 写入内 ...
- python的codecs模块_Python:使用codecs模块进行文件操作及消除文件中的BOM
前言 此前遇到过UTF8格式的文件有无BOM的导致的问题,最近在做自动化测试,读写配置文件时又遇到类似的问题,和此前一样,又是折腾了挺久之后,通过工具比较才知道原因. image 两次在一个问题上面栽 ...
- Python十大常用文件操作
日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘. 本篇文章整理了10个Python中最常用到的 ...
- Python 深浅copy 和文件操作
深浅copy 1,先看赋值运算. l1 = [1,2,3,['barry','alex']] l2 = l1l1[0] = 111 print(l1) # [111, 2, 3, ['barry', ...
- python删除txt文件第三行_真香!Python十大常用文件操作,轻松办公
日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘. 本篇文章整理了10个Python中最常用到的 ...
- python入门三:文件操作
一.文件操作 1.文件对象:和c一样,要想对一个文件进行操作,需要获取该文件的对象 1 f = open("xxx") # 打开文件并获取文件对象 2 f.xxx # 对文件进行某 ...
- 使用Python批量修改PPTX文件中文本框格式
问题描述:最近正在整理Python教材的配套PPT,原来的PPT是4:3的,考虑到现在很多屏幕都是宽屏的,于是打算重新整理一下.对于正常的幻灯片,直接在"页面设置"中修改一下就可以 ...
最新文章
- 网络配置之ifconfig及Ip命令详解
- vue-cli webpack配置分析 - chenBright - SegmentFault 思否
- 扩展欧几里得算法求逆元_从辗转相除法到求逆元,数论算法初体验
- db2中null和空值的区别_MySQL数据库的表中 NULL 和 空值 到底有什么区别呢?
- Poj 1503 Integer Inquiry
- 首次c#蓝牙开发踩坑记录
- Thinking in Java 10.2 链接到外部类
- MEF程序设计指南四:使用MEF声明导出(Exports)与导入(Imports)
- top 显示按照内存、CPU排序
- (数据库篇) SQL查询~ 存在一个表而不在另一个表中的数据
- scikit-learn的高级介绍
- warn - Attempted to load @next/swc-linux-x64-
- mysql auto increment offset_MySQL auto_increment_increment,auto_increment_offset 用法
- C语言-字符0、数字0和‘\0’的区别
- 古风尚婚纱摄影--决定
- NAACL最佳方法论文:课本上的A*搜索算法可以提升文本生成效果!
- web前端期末大作业:基于HTML+CSS+JavaScript奥迪企业bootstrap响应式网站
- 备份路由器配置文件到服务器,教你如何备份路由器配置文件
- DataCastle用户贷款风险预测(完整数据)
- 可视化模块(三): wandb