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学习(十一) 文件和流的更多相关文章

  1. python学习9—文件基本操作与高级操作

    python学习9—文件基本操作与高级操作 1. 文件基本操作 打开文件,获得文件句柄:f = open('filename',encoding='utf-8'),open会查询操作系统的编码方式,并 ...

  2. Python学习--13 文件I/O

    Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系 ...

  3. Python学习_06_文件、IO

    文件对象 python中的文件操作和c语言比较类似,包括一些缓冲.偏移量的方式. 文件对象可以通过open().file()两个内建方法创建,两个方法并没有什么不同,使用方法和c语言中的fopen() ...

  4. python学习总结---文件操作

    # 文件操作 ### 目录管理(os) - 示例 ```python # 执行系统命令 # 清屏 # os.system('cls') # 调出计算器 # os.system('calc') # 查看 ...

  5. [Python学习笔记]文件的读取写入

    文件与文件路径 路径合成 os.path.join() 在Windows上,路径中以倒斜杠作为文件夹之间的分隔符,Linux或OS X中则是正斜杠.如果想要程序正确运行于所有操作系统上,就必须要处理这 ...

  6. python学习笔记:文件操作和集合(转)

    转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...

  7. python学习——大文件分割与合并

    在平常的生活中,我们会遇到下面这样的情况: 你下载了一个比较大型的游戏(假设有10G),现在想跟你的同学一起玩,你需要把这个游戏拷贝给他. 然后现在有一个问题是文件太大(我们不考虑你有移动硬盘什么的情 ...

  8. python学习(十一)测试和调试

    最近学习了python的错误处理和几种测试方法 1 try except 可以通过try except方式捕捉异常 try: print('try...') r = 10/0 print('resul ...

  9. python学习8 文件的操作

    本文拷贝了on testing 的<python之文件操作:文件的读写>,只做学习之用 python的文件读写通过 一.用open函数 二.对文件读写操作 三.读取文件位置定位 1. op ...

  10. Python学习笔记——文件写入和读取

    1.文件写入 #coding:utf-8 #!/usr/bin/env python 'makeTextPyhton.py -- create text file' import os ls = os ...

随机推荐

  1. 使用Entity Framework时遇到的各种问题总结

    在这里记录一下之前使用Entity Framework(4.3.1版本)遇到的问题. 更新没有设置主键的表 在默认情况下,EF不能对一个没有主键的表进行更新.插入和删除的动作.用xml方式查看edmx ...

  2. pyCharm上解决安装不上pandas库问题

    最近在PyCharm上安装pandas库的时候,总是安装不上,提示好像是pip除了错误.我使用的是python .4版本.最后判断应该是自己pip版本应该太旧了,最后再cmd更新了pip之后就行了.如 ...

  3. Python主流框架

    15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python Web应用开发框架Django 应该是最出名的Pyth ...

  4. struts转换器

    struts转换器:在B/S应用中,将字符串请求参数转换为相应的数据类型,是MVC框架提供的功能,而Struts2是很好的MVC框架实现者,理所当然,提供了类型转换机制. 一.类型转换的意义 对于一个 ...

  5. 2017.10.30 Epicor -ERP

    1 公司新用ERP系统,做使用培训,mark... This course reviews the project management flow in the Epicor application. ...

  6. pgbench使用记录

    1.初始化: pgbench -i pgbench 如果端口号有变化,需要先手动创建数据库,再执行. pgbench -i -s 10 -p 5433 pgbench 重点:主要用到两个参数,-i:初 ...

  7. JMX心得 -- Server端

    关于什么是JMX,这里引用了网上找来的一个介绍:JMX(JavaManagement Extensions)是一个为应用程序植入管理功能的框架.JMX是一套标准的代理和服务,实际上,用户可以在任何Ja ...

  8. Helix Server流媒体服务器架设教程(附Helix Server11.01下载)

    现在D版的远古影视系统很流行,也很实用,但是在这之前,很多人都是用共享,或者是使用Helix Server留媒体来做电影服务器~ 虽然Helix Server流媒体服有点落伍了,不过我相信它还是有用武 ...

  9. LINUX下的ssh登录之后的文件远程copy:scp命令(接前文ssh登录)

    先记录参考: 1:http://www.cnblogs.com/peida/archive/2013/03/15/2960802.html 2:http://www.vpser.net/manage/ ...

  10. 21天学通C++_Day3_Part1

    今天奔跑吧兄弟来杭电了,决定不去看,宅在科协继续啃(反正去了也看不到咯),继续继续,今天白天没课,希望可以更两个. 0.C风格字符串 在数组中间把某个字符替换成‘\0’并不会改变数组的长度,但是显示时 ...