python文件读写

2017-11-11  本文已影响0人  sqoop

1、r 打开只读文件,该文件必须存在。
2、r+ 打开可读写的文件,该文件必须存在。
3、w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
4、w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
5、a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
6、a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
7、上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。

以上是网友整理的,只说一下我今天遇到的情况
win10+ python2.7.10
r+ 可以读文件,可以写文件,且可以使用file.seek(0)指定偏移量为起始位置
w+ 不能读文件,可以写文件,写文件是从偏移量为起始位置开始写的
a+ 可以读文件,可以写文件,但是,使用file.seek(0)之后,使用file.tell
查看当前偏移量的的位置,也是0 ,但是写文件的一直是追加。
以前只知道r+,w+,a+都是可以读写文件的,不知道详细区别,也没有资料去讲这个事情,今天自己试了之后。才知道其中一点点差别

def testdict():
    dict = {}
    host_names_context = open(host_names_cfg_file,'r')
    host_list = host_names_context.readlines();
    result = "";
    strreg = re.compile("\\s");
    for line in host_list:
        if not line.startswith("#"):
            tmp = strreg.split(line)
            print(tmp)
            result = result+tmp[0]+'\t'+tmp[1]+'\n'
            dict[tmp[0]] = tmp[1]
    print(dict)
    print(dict.get("192.168.10.212"))
    print(dict.get("192.168.10.2122")==None)
上一篇 下一篇

猜你喜欢

热点阅读