python文件操作
2017-07-14 22:30
363 查看
#######文件操作########
一 文件读写
• Python 内置了读写文件的函数,用法和 C 是兼容的。
• 操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(又称文件描述符),然后,通过操作系统提供的接
口从这个文件对象操作;
1.思考:
把大象放进冰箱的过程。
2.思考文件读写的过程:
(1). 打开文件
(2). 向文件中写入内容;
(3). 关闭文件文件读写
3. 打开文件
f = open('/root/hello')
# 如果文件不存在, open() 函数就会抛出一个 IOError 的错误,并且给出错误码和详细的信息告诉你文件不存在;
4.读取文件
f.read()
#如果文件打开成功,接下来,调用 read() 方法可以一次读取文件的全部内容;
5.关闭文件
f.close()
#文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源。
6.思考:
read()会一次性读取文件的全部内容,如果文件有 10G,内存就爆了。怎么解决?
• 如果文件很小, read() 一次性读取最方便;
• 如果不能确定文件大小,反复调用 read(size)
• 比较保险;如果是配置文件,调用 readlines()文件读写
7. 二进制文件
要读取二进制文件,比如图片、视频等等,用 'rb' 模式打开文件即可
>>> f = open('/root/test.jpg', 'rb')
>>> f.read()
'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制表示的字节文件读写
8. 字符编码
要读取非 ASCII 编码的文本文件,就必须以二进制模式打开,再解码,Python 还提供了一个 codecs 模块帮我们在读文件时自动转换编码,直接读出 unicode。
import codecs
with codecs.open('/Users/michael/gbk.txt', 'r', 'gbk') as f:
f.read() # u'\u6d4b\u8bd5'
二 open函数的模式
r 以读的方式打开,定位到文件开头 ,不可以写入 默认的 mode
r+ 以读写的方式打开,定位文件开头,可以写入内容到文件,依次覆盖源文件内容
w 以写的方式打开,打开文件的时候会清空文件的内容,并且不能读
w+ 以读写的方式打开,定位到文件头,并且打开文件的时候也会清空文件的内容
a 以写的方式打开,定位到文件的末尾,是一个追加的操作,但并不允许读
a+ 以读写的方式打开,定位到文件的末尾,追加的方式。
在使用以上 mode 打开文件的时候,如果增加了b 模式,表示以二进制方式打开
三 文件的其它操作
1.f.flush()函数,将缓冲区的内容写入到硬盘中
2.f.seek(offset[,whence]),offset 表示移动多少字节, whence 为 1 的时候表示相对于当前位置移动的;当 2 的时候从文件的末尾往后移动,但不一定所有的平台都支持;默认为 0 表示从文件开头往后移动
3.f.tell()函数,返回当前文件指针的偏移量:文件的其它操作
4.fileno() 函数,返回当前的文件描述符,一个数字
5.isatty() 函数,当前打开的文件是否是一个终端设备
6.closed 属性,当前文件是否关闭 ,|True,False, f.closed
7.file 对象是一个迭代器:
next() 方法 , 一行一行的读 , 每次读取一行
四 with语法
一般情况打开一个文件,经过操作之后,都要显式的执行xx.close() 将文件关闭 .with 用于需要打开、关闭成对的操作,可以自动关闭打开对象 .
with expression as obj:# 将打开的对象赋值给 obj
expression
#obj 的作用域只在 with 语句中
#练习:
# 编写一个文件,将hello文件中所有的hello替换成‘westos’,并另存为一文件hello.bak.
s.replace("hello",'westos')
hello.py内容:
this is a kind daxiang.
i want to put in bingxiang.
大象 put
外面太hello热了put
hello
冰箱里太冷了put
hello
hello world
f1 = open('hello','r')
f2 = open('westos','a+')
str1 = f1.read()
str2 = str1.replace('hello','westos')
f2.write(str2)
f1.close()
f2.close()
eg:
一 文件读写
• Python 内置了读写文件的函数,用法和 C 是兼容的。
• 操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(又称文件描述符),然后,通过操作系统提供的接
口从这个文件对象操作;
1.思考:
把大象放进冰箱的过程。
2.思考文件读写的过程:
(1). 打开文件
(2). 向文件中写入内容;
(3). 关闭文件文件读写
3. 打开文件
f = open('/root/hello')
# 如果文件不存在, open() 函数就会抛出一个 IOError 的错误,并且给出错误码和详细的信息告诉你文件不存在;
4.读取文件
f.read()
#如果文件打开成功,接下来,调用 read() 方法可以一次读取文件的全部内容;
5.关闭文件
f.close()
#文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源。
6.思考:
read()会一次性读取文件的全部内容,如果文件有 10G,内存就爆了。怎么解决?
• 如果文件很小, read() 一次性读取最方便;
• 如果不能确定文件大小,反复调用 read(size)
• 比较保险;如果是配置文件,调用 readlines()文件读写
7. 二进制文件
要读取二进制文件,比如图片、视频等等,用 'rb' 模式打开文件即可
>>> f = open('/root/test.jpg', 'rb')
>>> f.read()
'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制表示的字节文件读写
8. 字符编码
要读取非 ASCII 编码的文本文件,就必须以二进制模式打开,再解码,Python 还提供了一个 codecs 模块帮我们在读文件时自动转换编码,直接读出 unicode。
import codecs
with codecs.open('/Users/michael/gbk.txt', 'r', 'gbk') as f:
f.read() # u'\u6d4b\u8bd5'
二 open函数的模式
r 以读的方式打开,定位到文件开头 ,不可以写入 默认的 mode
r+ 以读写的方式打开,定位文件开头,可以写入内容到文件,依次覆盖源文件内容
w 以写的方式打开,打开文件的时候会清空文件的内容,并且不能读
w+ 以读写的方式打开,定位到文件头,并且打开文件的时候也会清空文件的内容
a 以写的方式打开,定位到文件的末尾,是一个追加的操作,但并不允许读
a+ 以读写的方式打开,定位到文件的末尾,追加的方式。
在使用以上 mode 打开文件的时候,如果增加了b 模式,表示以二进制方式打开
三 文件的其它操作
1.f.flush()函数,将缓冲区的内容写入到硬盘中
2.f.seek(offset[,whence]),offset 表示移动多少字节, whence 为 1 的时候表示相对于当前位置移动的;当 2 的时候从文件的末尾往后移动,但不一定所有的平台都支持;默认为 0 表示从文件开头往后移动
3.f.tell()函数,返回当前文件指针的偏移量:文件的其它操作
4.fileno() 函数,返回当前的文件描述符,一个数字
5.isatty() 函数,当前打开的文件是否是一个终端设备
6.closed 属性,当前文件是否关闭 ,|True,False, f.closed
7.file 对象是一个迭代器:
next() 方法 , 一行一行的读 , 每次读取一行
四 with语法
一般情况打开一个文件,经过操作之后,都要显式的执行xx.close() 将文件关闭 .with 用于需要打开、关闭成对的操作,可以自动关闭打开对象 .
with expression as obj:# 将打开的对象赋值给 obj
expression
#obj 的作用域只在 with 语句中
#练习:
# 编写一个文件,将hello文件中所有的hello替换成‘westos’,并另存为一文件hello.bak.
s.replace("hello",'westos')
hello.py内容:
this is a kind daxiang.
i want to put in bingxiang.
大象 put
外面太hello热了put
hello
冰箱里太冷了put
hello
hello world
f1 = open('hello','r')
f2 = open('westos','a+')
str1 = f1.read()
str2 = str1.replace('hello','westos')
f2.write(str2)
f1.close()
f2.close()
eg:
相关文章推荐
- python操作文件和目录
- Python文件夹与文件的操作
- Python学习笔记(八)——有关文件的操作
- Python学习系列之异常和文件操作
- Python OS 文件操作模块常用函数
- 使用Python进行稳定可靠的文件操作
- python文件夹遍历,文件操作,获取文件修改创建时间
- python---项目2-查找服务器是否开启ftp的21端口,socket,os,sys,端口识别,文件操作
- python--文件操作之遍历目录
- python 文件操作常用命令
- python 提供INI配置文件的操作 ConfigParser
- 详解Python中的文件操作
- python-文件的基本操作
- python文件读写操作与linux shell变量命令交互执行的方法
- Python 文件读写操作实例详解
- Python文件(夹)操作
- Python中的文件和目录操作
- Python入门:文件内容去重操作
- Python常见文件操作的函数示例
- open -python操作文件