python学习(十一) 文件和流
11.1 打开文件
>>> f = open(r'c:\text\somefile.txt'), 第一个参数是文件名,必须有;第二个是模式;第三个参数是缓冲。
11.1.1 文件模式
如果open函数只带一个文件名参数,那么我们可以获得能读取文件内容的文件对象。如果要向文件内写入内容,则必须提供一个模式参数
'r' -----读模式(制定读模式与不制定的效果是一样的)
'w'-----写模式
'a'-----追加模式
'b'-----二进制模式(python假定处理的都是文本文件(包含字符),但是如果是其他类型的文件(二进制),比如声音或者图像,那么要指定 b模式)
(为什么使用二进制模式: \n 和 \r\n的转换,但是如果是二进制文件就不会转。)
'+'-----读写模式
11.1.2 缓冲
如果是0(False),I/O就是无缓冲的,所有的读写操作都是直接针对硬盘;
如果是1(True),就是有缓冲的,使用内存代替硬盘,速度快,只有在flush或close的时候才会更新硬盘上的数据。
大于1,代表缓冲区大小(单位是字节),-1代表使用默认缓冲区大小。
11.2 基本的文件方法
11.2.1 读和写
>>> f = open(r'c:\text\somefile.txt','w') // 写
>>> f.write('abcd \n ef \r\n gh')
15
>>> f.flush() // 调用close()或flush()才能真正写进去
>>> f=open(r'c:\text\somefile.txt', 'r') // 读
>>> f.read(4) // 只读4个
'abcd'
>>> f.read() // 读所有的
' \n ef \n\n gh'
11.2.2 管式输出
前一个命令的输出是下一个命令的输入,用符号“|”连接
11.2.3 读写行
>>> f.readline()
''
>>> f.seek(0) // 定位到文本开始
0
>>> f.readline() // 读取一个行
'abcd \n' >>> f.readlines() // 读取所有的行,返回列表
[' ef \n', '\n', ' gh'] f.writelines(['afa','gdf','gfdg']) // 按行的方式写入列表
11.2.4 关闭文件
对文件操作应该,在finally中调用 f.close(), 这样保证出异常了也可以正确关闭文件。
11.2.5 使用基本文件方法
11.3 对文件内容进行迭代
11.3.1 按字节处理
f = open(filename)
char = f.read(1)
while char:
process(char)
char = f.read(1)
f.close()
11.3.2 按行操作
readline()
11.3.3 读取所有内容
read() : 不带参数的read方法可以读取所有行。
readlines(): 读取所有行。
11.3.4 使用fileinput实现懒惰行迭代
readline() 每次只读一行。
import fileimput
for line in fileinput.input(filename):
process(line)
11.3.5 文件迭代器
f = open(filename)
for line in f:
processs(line)
f.close()
python学习(十一) 文件和流的更多相关文章
- python学习9—文件基本操作与高级操作
python学习9—文件基本操作与高级操作 1. 文件基本操作 打开文件,获得文件句柄:f = open('filename',encoding='utf-8'),open会查询操作系统的编码方式,并 ...
- Python学习--13 文件I/O
Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系 ...
- Python学习_06_文件、IO
文件对象 python中的文件操作和c语言比较类似,包括一些缓冲.偏移量的方式. 文件对象可以通过open().file()两个内建方法创建,两个方法并没有什么不同,使用方法和c语言中的fopen() ...
- python学习总结---文件操作
# 文件操作 ### 目录管理(os) - 示例 ```python # 执行系统命令 # 清屏 # os.system('cls') # 调出计算器 # os.system('calc') # 查看 ...
- [Python学习笔记]文件的读取写入
文件与文件路径 路径合成 os.path.join() 在Windows上,路径中以倒斜杠作为文件夹之间的分隔符,Linux或OS X中则是正斜杠.如果想要程序正确运行于所有操作系统上,就必须要处理这 ...
- python学习笔记:文件操作和集合(转)
转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...
- python学习——大文件分割与合并
在平常的生活中,我们会遇到下面这样的情况: 你下载了一个比较大型的游戏(假设有10G),现在想跟你的同学一起玩,你需要把这个游戏拷贝给他. 然后现在有一个问题是文件太大(我们不考虑你有移动硬盘什么的情 ...
- python学习(十一)测试和调试
最近学习了python的错误处理和几种测试方法 1 try except 可以通过try except方式捕捉异常 try: print('try...') r = 10/0 print('resul ...
- python学习8 文件的操作
本文拷贝了on testing 的<python之文件操作:文件的读写>,只做学习之用 python的文件读写通过 一.用open函数 二.对文件读写操作 三.读取文件位置定位 1. op ...
- Python学习笔记——文件写入和读取
1.文件写入 #coding:utf-8 #!/usr/bin/env python 'makeTextPyhton.py -- create text file' import os ls = os ...
随机推荐
- Java class、Object、Class 的区别
Java的对象模型中: 所有的类都是Class类的实例,Object是类,那么Object也是Class类的一个实例. 所有的类都最终继承自Object类,Class是类,那么Class也继承自Obj ...
- IE兼容性测试工具IETester
IE兼容性测试工具:IETester 1.这种做法,不能做到100%的覆盖: 2.实际的业务场景会比IEtester更符合.
- Visual Studio 2008常见问题
1.asp.net在什么软件上运行?学习asp往往需要测试asp程序,电脑不能直接测试,需要装IIS才能运行,但装IIS要么需要安装盘,要么需要安装包,而且设置也很复搜索杂.这里给大学推荐两个替代II ...
- android官网被封掉了,只好用这个网站进谷歌了!嘎嘎
http://developer.android.com/sdk/index.html 这个可以进去,但是必须是搜狐 .360,uc都不用特意FQ http://173.1 ...
- Android 进阶10:进程通信之 Messenger 使用与解析
读完本文你将了解: Messenger 简介 Messenger 的使用 服务端 客户端 运行效果 使用小结 总结 代码地址 Thanks 前面我们介绍了 AIDL 的使用与原理,这篇文章来介绍下 A ...
- canvas 绘制环形进度条
结果: 代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="U ...
- VS for Mac安装之路
首先说四个字:水土不服 作为宇宙最强IDE,从开始编程就一直用的Visual Studio,最近新买了Mac,发现微软发布了VS for Mac,于是打算安装一个试试,怎奈,微软的产品在别家水土不服, ...
- C++11 Lambda表达式(匿名函数)
http://www.cnblogs.com/RainyBear/p/5733399.html http://blog.163.com/lvan100@yeah/blog/static/6811721 ...
- Golang 编译成 DLL 文件
golang 编译 dll 过程中需要用到 gcc,所以先安装 MinGW. windows 64 位系统应下载 MinGW 的 64 位版本: https://sourceforge.net/pro ...
- 解放内存之搭建自己的 R Server
学校的课五门有四门需要跑R程序,有一些长长长的代码实在是占用了太多的内存,果断决定搭个R的服务器放着自己跑. 愉快的是,R studio server 的搭建真心简单快捷~这个从前被我忽略的东东终于排 ...