摘要:文件打开的方式有多种。读取模式写入模式。若文件不存在,则会创建文件。但是文件必须已经存在。模式文件的读写是文本模式,这就意味着会把转换成平台相关的换行符。
现代的操作系统其实都不允许程序直接读写系统中的文件,而是程序通过请求系统打开一个文件对象,然后再对文件对象进行读写。
import logging try: f = open("getAttar.py", "r") content = f.read() print content except IOError, e: logging.error(e) finally: if f: f.close()
python在申请打开文件对象的时候,可能会存在文件不存在的情况,则会抛出IOError需要我们捕获处理。
文件对象一旦打开,就需要我们去关闭它。否则其会占用系统资源。
文件打开的方式有多种。
open(name[, mode[, buffering]])mode:
"r": 读取模式
"w": 写入模式。如果文件已经存在,则会先清空。若文件不存在,则会创建文件。
"a": append,添加。在unix系统,在,a模式意味着将内容写入到文件末端而不管当前的指针在哪里。
"r+": 兼具读写功能。但是文件必须已经存在。而且只会覆盖写入的区域,而保留未被覆盖的区域。例如文件中有“111111”六个1,用该模式写入“000”后就变成“000111”了。
"w+":兼具读写功能。但是会清空文件。
模式文件的读写是文本模式,这就意味着会把
转换成平台相关的换行符。
如果需要操作二进制文件,则需要添加模式"b"。
0: 不缓存
1: 缓存一行
其他正整数:代表相应的bytes被缓存了。
负整数:系统默认
我们可以使用with ... as ...这种语句替代try...finally..
with语句用于对资源进行控制的场合。
例如:
with open("world.txt", "r") as f: for line in f: print line
需要了解更多,可以阅读:
http://www.ibm.com/developerw...
open()打开的一个文件后返回是file-like object.除了文件file以外,还可以是内存中的字节流,网络流,自定义流等等。
StringIO创建的就是file-like object,常用做临时缓冲。
Python中默认读取文件是以text模式读取。读取图片、视频、音频等二进制文件的时候,可以添加模式b代表以二进制模式读取。
字符编码assci码给英语世界常用的字符和英文字母变了个号。但是未考虑其他国家的符号。
unicode 给世界上几乎所有的符号都编了个号码。
utf-8是unicode的一种实现形式。
在python中,我们可以将读取的字符解码(decode)成unicode,然后将unicode编码成制定的编码形式。
例如
f = open("demo.txt", "r") print f.read().decode("gbk") f.close()
上述代码中将读取到的文本按gbk编码方式解码成unicode。
但是总是这么手工解码比较麻烦,python为我们提供了codecs模块。例如:
import codecs with codecs.open("world.txt", "rb", encoding="gbk") as f: for line in f: print line
除了上述按特定编码格式解码文件,然后按unicode格式存储在内存中。
我们也可以将内存中的unicode以特定格式写入文本。
# coding=utf-8 import codecs with codecs.open("world.txt", "rb", encoding="utf-8") as rf, codecs.open("world2.txt", "wb", encoding="gbk") as wf: wf.write(rf.read())
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38343.html
摘要:键盘输入提供了内置函数从标准输入读入一行文本,默认的标准输入是键盘。可以接收一个表达式作为输入,并将运算结果返回。将返回该文件中包含的所有行。将写入到文件中然后返回写入的字符数。当处理一个文件对象时使用关键字是非常好的方式。 1. 键盘输入 Python提供了 input() 内置函数从标准输入读入一行文本,默认的标准输入是键盘。input 可以接收一个 Python 表达式作为输入,...
摘要:可以传入一个字符初始化。只能处理字符串类型的数据,可以用于处理二进制类型的数据。在搜索文档的时候,发现在下也有一个,而且两者非常类似。 之前我们所说的都是读写真正的文件。其实我们也可以在内存中虚拟一个文件进行读写。Python给咱们提供的官方module有io.StringIO和io.BytesIO. io.StringIO String IO用于在内存在读写字符串。StringIO可...
摘要:学习笔记七数学形态学关注的是图像中的形状,它提供了一些方法用于检测形状和改变形状。学习笔记十一尺度不变特征变换,简称是图像局部特征提取的现代方法基于区域图像块的分析。本文的目的是简明扼要地说明的编码机制,并给出一些建议。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 开始之前,我们先来看这样一个提问: pyth...
摘要:本章主要是学习的文件操作,主要是从文件中读取数据以及将数据存储到文件中,还有错误处理,异常类,模块等。函数返回一个文件对象,用于接收该对象。异常中使用被称为异常的特殊对象来管理程序执行期间发生的错误。 《Python编程:从入门到实践》笔记。本章主要是学习Python的文件操作,主要是从文件中读取数据以及将数据存储到文件中,还有错误处理,异常类,json模块等。 1. 从文件中读数据 ...
阅读 665·2021-11-25 09:43
阅读 2934·2021-11-24 10:20
阅读 969·2021-10-27 14:18
阅读 1055·2021-09-08 09:36
阅读 3357·2021-07-29 14:49
阅读 1766·2019-08-30 14:07
阅读 2916·2019-08-29 16:52
阅读 2989·2019-08-29 13:12