python---文件读写-IO
IO----文件操作,读操作
1、open('文件名','打开方式',mode[buff]);------------->第一个参数是文件路径,第二个参数是打开方式(如果不写,默认是只读),第三个(可选)参数是设置读写文件的一个缓冲的大小
2、with open('文件名','打开方式') as f----------------------------->第一种不需要记,只需要记住这种用法就行
f.read([size]);------------------->使用read()方法读取,其中size参数是设置读写的字节大小,超过的不读取,。默认不设置就全部读取
f.readline([size]);----------------------->使用readline()方法读取,意思是只读取一行,其中size参数是设置读写的字节大小,超过的不读取。。默认不设置就全部读取
f.readlines([size(8192字节,IO下的buffer默认大小)]);[不推荐,若文件很大,会占用很大的内存空间]------------------------>使用readlines()方法读取,意思是读取文件中的每一行,并最终将每一行存入数组中返回,这样访问文件内容就可以像访问数组一样使用。
3、使用迭代器iter对文件内容进行读取【推荐】(好处:迭代器不是将内容导入内存中,而是每次在next时,自动读取下一条数据,这样可以不消耗内存的前提下对)
f=open('文件名');
liter=iter(f);-------->将文件转换成迭代器
lines=0;-------------->用来记录行数
for lines in liter:
lines+=1;----------->遍历文件,每次行数+1;
以上两种方式的结果是一样的(都是读出该文档中的所有内容为一个str对象),只不过第一种没有关闭(f.close()操作),第二种默认会有(f.close()操作),一般都用第二种方法
3、w模式下(只写),f.write('哈哈'),、f.writeline('的分对付对付对付')可以是列表元祖字符串[但必须是字符串所组成的序列]--------------------->这个是覆盖原内容,添加,w模式下,没有read()方法
4、a模式下(只写,追加),f.write('你好')----------------------->这个是在原内容下,在末尾增加,a模式下,没有read()方法
5、r模式下(只读),read();-------------------------------->这个是读取所有内容,以字符串输出
6、r+模式下(读写),read(),write()------------------------->最常用哒,这个写入是在原内容下,在头部添加
7、w+模式(读写),read(),write()---------------------------->这个写入跟w模式一样,都是覆盖原内容添加
8、与r相关的模式,文件必须存在,否则会报错:IOERROR
9、与w相关的模式,文件可以不存在,如果不存在,直接创建
10、与b相关的模式,都是以二进制进行读、写、读写(用途:读取一张图片)

遇到的问题:
①、SyntaxError: Non-UTF-8 code starting with '\xce' :这个是编码问题,在代码的最顶部加上【# -*- coding: utf-8 -*-】即可
②、文档中内容为【大家好】,但是使用read()打印出来是【锘垮ぇ瀹跺ソ】
检查1:目前python 的文件编码方式是【utf-8】,txt文档的编码格式也是【utf-8】,此时运行会出现②中的乱码问题
检查2:在代码中加入打开的格式,open(r'D:\Users\4399-3046\Desktop\test.txt', 'r',encoding='utf-8'),此时运行仍会报③中的错误
检查3:若把txt文档的编码格式改为其他,如【unicall】,此时运行仍会报③中的错误
检查4:修改项目的编码格式:setting---Editor-----File Encoding------都设置为【UTF-8】,此时运行仍会出现②中乱码问题
检查5:修改项目的读取方式,改为w---再改为r,就正常了,原因未知
③、UnicodeEncodeError: 'gbk' codec can't encode character '\ufeff' in position 0: illegal multibyte sequence-------从代码中可以看出肯定GBK是编码的问题
④、UnicodeDecodeError: 'gbk' codec can't decode byte 0xa1 in position 22: illegal multibyte sequence------从代码中可以看出肯定也是GBK编码的问题
尝试1:在代码中加入,忽略异常,open中加入(error='ignore')---结果不会再报上面的错误,但是会出现中文乱码,如问题②中一样-----这是解决以上办法最简单粗暴的方式

尝试2:在以上基础上,open中加入(encoding='utf8')或encoding='utf-8'后正常,展示正常
⑤、文件最后为什么一定要关闭close操作:原因一:是为了将写的内容同步到磁盘,原因二:是因为window操作系统打开的文件进程个数是有限的,原因三:如果打开的文件数达到上限,那么再次打开另一个文件是会失败的
文件文件,缓存问题
①、调用close()方法
②、


python---文件读写-IO的更多相关文章
- python文件读写及形式转化和CGI的简单应用
一丶python文件读写学习笔记 open() 将会返回一个 file 对象,基本语法格式如下: open(filename, mode) filename:包含了你要访问的文件名称的字符串值. mo ...
- python 文件读写操作(24)
以前的代码都是直接将数据输出到控制台,实际上我们也可以通过读/写文件的方式读取/输出到磁盘文件中,文件读写简称I/O操作.文件I/O操作一共分为四部分:打开(open)/读取(read)/写入(wri ...
- 快速入门Python中文件读写IO是如何来操作外部数据的?
读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...
- 【学习】python文件读写,用with open as的好处,非常好【转载】
原文链接:http://www.cnblogs.com/ymjyqsx/p/6554817.html 备注:博主还有很多值得学习的笔记,遇到问题可以拜读,非常感谢博主的总结 读写文件是最常见的IO操作 ...
- python文件读写,以后就用with open语句
读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...
- Python文件读写、StringIO和BytesIO
1 IO的含义 在计算机中,IO是Input/Output的简写,也就是输入和输出. 由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就 ...
- Python 简明教程 --- 24,Python 文件读写
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 过去的代码都是未经测试的代码. 目录 无论是哪种编程语言,IO 操作都是非常重要的部分.I 即Inp ...
- Windows Phone 八、文件读写IO
文件存储的类型 •本地应用文件: •ApplicationData.Current.LocalFolder: •漫游应用文件: •ApplicationData.Current.RoamingFold ...
- Python 文件读写,条件循环(三次登录锁定账号实例)
通过文件读写,条件循环相关语法,实现三次登录失败则锁定该账号的功能 需求一 """需求描述: 1.输入正确账号,密码,退出程序 2.登录失败,重新输入账号密码 3.同一账 ...
- 文件读写IO
摘要:本文主要总结了以下有关文件读写的IO,系统调用与库函数. 1.初级IO函数:close,creat,lseek,open,write 文件描述符是一个整型数 1.1close 1.2int cr ...
随机推荐
- ASP.NET MVC5入门1之项目创建
本博文参考ASP.NET MVC5入门指南,下载链接: ASP.NET_MVC5_入门指南 1.创建项目 文件 --> 新建 --> 项目 Visual C# --> Web --& ...
- 正版phpstorm,webstorm,goland(Jetbrains系列都可以)免费激活步骤(图文详解)(亲测有效)
1 前言 Jetbrains系列都可以,包括webstrom,phpstorm,goland等. 附加其它方案如下: webstrom(注册机) goland(破解补丁) 2 步骤 1. 可以先试用, ...
- C# 操作Excel加水印
首先下载免费版的Excel组件- Spire.XLS,安装完成后在bin目录里面有需要用到的dll文件,引用到自己项目里面. 我这里全引进来了,一共就四个: 界面 效果 全部代码 private st ...
- windows 2012执行powershell脚本报错
使用powershell运行脚本报错:进行数字签名.无法在当前系统上运行该脚本.有关运行脚本和设置执行策略的详细信息 修复方法:powershell "Set-ExecutionPolicy ...
- Vue项目构建开发笔记(vue-lic3.0构建的)
1.router.js里面 { path: '/about', name: 'about', // route level code-splitting // this generates a sep ...
- Modbus库开发笔记之五:Modbus RTU Slave开发
Modbus在串行链路上分为Slave和Master,这一节我们就来开发Slave.对于Modbus RTU从站来说,需要实现的功能其实与Modbus TCP的服务器端是一样的.其操作过程也是一样的. ...
- Nginx(./configure --help)
# ./configure --help --help print this message --prefix=PATH set installation prefix --sbin-path=PAT ...
- Go 开源博客平台 Pipe 1.0.0 发布!
这是 Pipe 博客平台的第一个正式版,欢迎大家使用和反馈建议! 简介 Pipe 是一款小而美的开源博客平台,通过黑客派账号登录即可使用. 动机 产品层面: 市面上缺乏支持多独立博客的平台级系统 实现 ...
- Confluence 6 管理你的 Confluence 许可证
你的许可证能够让你在运行 Confluence 的时候在指定的时间段获得特定的支持.同时这个许可证也定义了在你 Confluence 中可以使用的用户数量. 希望快速的查看当前的许可证信息,你可以进入 ...
- json与字典的区别