python中的文件读写

python中可能会用到文件的读写,记录一下

python中的读文件:

           python中提供了一个函数open(name[, mode[, buffering]]) -> file object,

           后面两个参数可选

           mode:

                        默认mode为r读模式,mode有几个值,r,w,a,分别为读,写,追加写入文件,其中r必须是存在的文件,

                        w和a对不存在的文件会自动创建文件

                        还有r+, 这个是读写模式,这个也要求文件必须存在,好处是,打开文件后,可写可读

                        rb, wb,r+b等模式,这些在windows系统下为二进制的方式进行读取,在linux下没有区别

           buffering的值为:

                       0没有缓冲区大小,

                       1按行读取文件, 

                       大于1的为指定的字节数,

           返回一个文件对象

   

           如:

                       f = open("/data/test.log")   -> 大开一个模式为读文件,没有缓冲的文件对象

                       f = open("/data/test.log", 'r', ) ->跟上一个一样

                       f = open("/data/test.log", 'rw') ->读写文件

            读入文件内容(按行读取):

                       content = f.read()  ->将全部的文本一次读出

                       lineList = f.readlines() ->将文件按行读出,读出后转换为一个list存储

                       lineList = list(f) -> 同f.readlines()

                       这样可以利用for循环来操作没一行

                       如:

                                for line in f.readlines():

                                      print line

                       还可以直接对文件对象用for循环操作:

                               for line in f:

                                      print line

              按字节读取文件:

                       content = f.read(size)  ->读入指定的大小的字节,若未指定,则表示读入整个文件或当前位置到最后

                       f.seek(offset[, whence]) -> 将当前的读入指针移动到指定的位置:这里取决于whence的值,

                                                                       默认为0,0绝对位置, 1,相对位置,2,从文件末尾倒数

                      如:

                                    f.seek(100)   ->指针跳到第100个字节

                                    f.seek(100, 1) ->指针跳到离当前位置的100个字节位置,即currentPosition + 100

                                    f.seek(-100, 2) ->指针跳到文件末尾倒数第100个字节的位置

              文件写入:

                     f = open("/data/test.log", 'w')   ->这个模式为:若文件不存在,创建文件,若存在,当写入文件后,原来的全部内容清楚

                     f = open("/data/test.log", 'a')   ->这个模式为追加append,若文件不存在,创建文件,即在现有的内容中在后面添加写入的内容

                     f.write("something")   ->写入相应的文件,如要一行一行写入,必须在后面加上"\n"

                     f.writelines(stringList) ->一次写入多行,传入的是一个字符串的list

               

              补充:   file的其他方法

                    f.tell() ->告诉当前的文件指针,每读文件一次,都在改变

                    f.close() ->关闭文件 

                     读文件例子

#! /usr/bin/python
#-*- coding:utf-8 -*-
#Filename: readFile.py
#Author: xiaobing
#E-mail: xiaobingzhang29@gmail.com
#Date: 2013-10-06
#Description: 


filename = "/home/xiaobing/test.log"
lines = []
try:
    f = open(filename, 'r')
    lines = f.readlines()
except IOError as e:
    print e
else:
    for line in lines:
        print line
finally:
    f.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值