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()
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weay/article/details/80946152

文件读取:

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即文件开头。下面给出一个完整的例子:

  1. f = open('/tmp/workfile', 'r+')
  2. f.write('0123456789abcdef')
  3. f.seek(5) # Go to the 6th byte in the file
  4. f.read(1)
  5. f.seek (-3, 2) # Go to the 3rd byte before the end
  6. f.read(1)

五、关闭文件释放资源文件操作完毕,一定要记得关闭文件f.close(),可以释放资源供其他程序使

只是ASCII或者gbk编码格式的的文件读写,比较简单,读写如下:

  1. # coding=gbk
  2. f = open('c:/intimate.txt','r') # r 指示文件打开模式,即只读
  3. s1 = f.read()
  4. s2 = f.readline()
  5. s3 = f.readlines() #读出所有内容
  6. f.close()
  7. f = open('c:/intimate.txt','w') # w 写文件
  8. 11 f.write(s1)
  9. 12 f.writelines(s2) # 没有writeline
  10. 13 f.close()

六. f.writelines不会输出换行符。

python unicode文件读写:

  1. # coding=gbk
  2. import codecs
  3. f = codecs.open('c:/intimate.txt','a','utf-8')
  4. f.write(u'中文')
  5. s = '中文'
  6. f.write(s.decode('gbk'))
  7. f.close()
  8. f = codecs.open('c:/intimate.txt','r','utf-8')
  9. s = f.readlines()
  10. f.close()
  11. for line in s:
  12. print line.encode('gbk')

python代码文件的编码

py文件默认是ASCII编码,中文在显示时会做一个ASCII到系统默认编码的转换,这时就会出错:SyntaxError: Non-ASCII character。需要在代码文件的第一行或第二行添加编码指示:

  1. # coding=utf-8 ##以utf-8编码储存中文字符
  2. print '中文'像上面那样直接输入的字符串是按照代码文件的编码来处理的,如果用unicode编码,有以下2种方式:
    1. s1 = u'中文' #u表示用unicode编码方式储存信息
    2. s2 = unicode('中文','gbk')

unicode是一个内置函数,第二个参数指示源字符串的编码格式。

decode是任何字符串具有的方法,将字符串转换成unicode格式,参数指示源字符串的编码格式。

encode也是任何字符串具有的方法,将字符串转换成参数指定的格式。

python字符串的编码

用 u'汉字' 构造出来的是unicode类型,不用的话构造出来是str类型

str的编码是与系统环境相关的,一般就是sys.getfilesystemencoding()得到的值

所以从unicode转str,要用encode方法

从str转unicode,所以要用decode

例如:

  1. # coding=utf-8 #默认编码格式为utf-8
  2. s = u'中文' #unicode编码的文字
  3. print s.encode('utf-8') #转换成utf-8格式输出
  4. print s #效果与上面相同,似乎默认直接转换为指定编码

我的总结:

  1. u=u'unicode编码文字'
  2. g=u.encode('gbk') #转换为gbk格式
  3. print g #此时为乱码,因为当前环境为utf-8,gbk编码文字为乱码
  4. str=g.decode('gbk').encode('utf-8') #以gbk编码格式读取g(因为他就是gbk编码的)并转换为utf-8格式输出
  5. 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相关推荐

  1. Python批量设置pptx文件中文本框边框与填充样式(含20分钟视频讲解)

    近期会议: 10月30-11月1日 全国高校Python课程高级研修班(苏州) 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清 ...

  2. Python中的File(文件)操作

    Python中的File(文件)操作 针对磁盘中的文件的读写.文件I/O I 输入(input) O输出(Output) 文件操作步骤:1.打开文件 2.读写文件 3.关闭文件 写入文件的操作:(把大 ...

  3. 详解Python中的File(文件)操作

    目录 Python中的File(文件)操作 写入文件的操作: 读取文件的操作: 一.文件操作相关函数 1. open() 打开文件 2. seek() 设置文件指针的位置 3. write() 写入内 ...

  4. python的codecs模块_Python:使用codecs模块进行文件操作及消除文件中的BOM

    前言 此前遇到过UTF8格式的文件有无BOM的导致的问题,最近在做自动化测试,读写配置文件时又遇到类似的问题,和此前一样,又是折腾了挺久之后,通过工具比较才知道原因. image 两次在一个问题上面栽 ...

  5. Python十大常用文件操作

    日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘. 本篇文章整理了10个Python中最常用到的 ...

  6. Python 深浅copy 和文件操作

    深浅copy 1,先看赋值运算. l1 = [1,2,3,['barry','alex']] l2 = l1l1[0] = 111 print(l1) # [111, 2, 3, ['barry', ...

  7. python删除txt文件第三行_真香!Python十大常用文件操作,轻松办公

    日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘. 本篇文章整理了10个Python中最常用到的 ...

  8. python入门三:文件操作

    一.文件操作 1.文件对象:和c一样,要想对一个文件进行操作,需要获取该文件的对象 1 f = open("xxx") # 打开文件并获取文件对象 2 f.xxx # 对文件进行某 ...

  9. 使用Python批量修改PPTX文件中文本框格式

    问题描述:最近正在整理Python教材的配套PPT,原来的PPT是4:3的,考虑到现在很多屏幕都是宽屏的,于是打算重新整理一下.对于正常的幻灯片,直接在"页面设置"中修改一下就可以 ...

最新文章

  1. 网络配置之ifconfig及Ip命令详解
  2. vue-cli webpack配置分析 - chenBright - SegmentFault 思否
  3. 扩展欧几里得算法求逆元_从辗转相除法到求逆元,数论算法初体验
  4. db2中null和空值的区别_MySQL数据库的表中 NULL 和 空值 到底有什么区别呢?
  5. Poj 1503 Integer Inquiry
  6. 首次c#蓝牙开发踩坑记录
  7. Thinking in Java 10.2 链接到外部类
  8. MEF程序设计指南四:使用MEF声明导出(Exports)与导入(Imports)
  9. top 显示按照内存、CPU排序
  10. (数据库篇) SQL查询~ 存在一个表而不在另一个表中的数据
  11. scikit-learn的高级介绍
  12. warn - Attempted to load @next/swc-linux-x64-
  13. mysql auto increment offset_MySQL auto_increment_increment,auto_increment_offset 用法
  14. C语言-字符0、数字0和‘\0’的区别
  15. 古风尚婚纱摄影--决定
  16. NAACL最佳方法论文:课本上的A*搜索算法可以提升文本生成效果!
  17. web前端期末大作业:基于HTML+CSS+JavaScript奥迪企业bootstrap响应式网站
  18. 备份路由器配置文件到服务器,教你如何备份路由器配置文件
  19. DataCastle用户贷款风险预测(完整数据)
  20. 可视化模块(三): wandb

热门文章

  1. mysql6.0设置时区_关于Mysql6.0+的时区错乱问题
  2. Ubuntu 安装 ffmpeg
  3. Unity5.6+ 导出Android 应用程序apk的环境配置及导出过程
  4. mybatis CRUD操作
  5. 【课堂笔记系列】二进制
  6. 【C#实践】详解三层转七层:登录
  7. Linux系统管理必备知识之查看系统用户和用户组
  8. OpenMP用法大全
  9. OpenCL产业开发链
  10. synopsys PCIE IP协议解析