码迷,mamicode.com
首页 > 编程语言 > 详细

【Python】 文件和操作文件方法

时间:2017-03-25 12:54:39      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:enter   ...   自动   模式   ext   char   操作   关闭   out   

文件

■  基本的文件用法

  f = open("path","mode")  mode有a,w,r,b,+等。默认为r。模式与打开文件时的动作有关系,比如用w打开的话肯定会清空文件再写,而a的话打开时就不会清空文件而是直接append内容

  f.read()/write(...)

  f.close()

  在很多示例中,打开文件用的都是这样一种方法:

  with open("path","mode") as f:
    f.操作

  不用再手动关闭文件什么的,这个涉及到with这个上下文管理语句,现在还不是很懂,等以后有机会再来研究一下。

■  读的方法

  f.read(...)  读...个字符,无参数则读取整个文件

  f.readline()  读取一行,如果有参数就是读取这行的前n个字符,每行包括换行符在内!

  f.readlines()  读取一个由行组成的列表,每行也都有换行符

  *因为程序是以流的形式读取文件的,所以在readline,read这种一点一点读取的方法里,读取完一部分后再读取就自动接续到下一部分了。

■  写的方法

  f.write(...)

  f.writelines([..,..,..])  与readlines相反,用write将一个列表写进文件,注意的是writelines不会再每个元素后面自动加上换行回车,所以要手动地加上\n

 

■  三个特别的类文件对象

  stdin, stdout, stderr是sys的三个类文件对象,所谓类文件,就是说它们可以像一个文件一样去read和write,比如:

  sys.stdin.readlines()

  sys.stdout.write(...)

  sys.stderr.write(...)

 

■  对文件内容的遍历 

  ●  按字节处理

    用read(1)对字符做一个遍历,循环的条件可以是while char != ""来判断是不是把文件读完了

  ●  按行处理

    用readline()对行做遍历,循环的条件可以是while line != ""。

    需要注意的是readline每次只读一行,肯定效率比readlines要低一点,但是碰到很大的文件,没办法用readlines一次性读进内存的话,可以考虑用readline来遍历

  ●  更简便的写法

    python中的文件是个可迭代的对象。这意味着我们也可以这么写:

    for line in test_file:

      process(line)

    也就是说如果默认按照行来处理的话,甚至都可以不用写open来打开语句

【Python】 文件和操作文件方法

标签:enter   ...   自动   模式   ext   char   操作   关闭   out   

原文地址:http://www.cnblogs.com/franknihao/p/6616811.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!