之前也用到过python文件的读取和写入,但是一直没有系统的了解一下。今天终于有时间,可以整理一下。以后忘记了也可以翻出来看看
1、r只读
2、w只写
3、r+,可读可写。当文件存在时会报错
需要注意:当你打开文件先读一边,然后接着写入,此时够写入的文件不会覆盖前面的内容。原因是,此时f相当于一个指针,指向刚才读取出来的文件最后一样的下一行,所以会直接添加在后面。
代码如下:
f=open('list.txt','r+')
print f.read()
f.write("zhouchao male 24 tester")
f.close()
下图1为文件开始内容,如2为程序执行后的内容:
图1:
图2:
4、w+,可读可写。当文件不存在时会新建
5、a ,追加文件,不可读
6、a+,追加文件,可读可写
7、rb 以二进制读模式打开。只可读
8、rb+ 以二进制写读写模式打开。可读可写,当文件不存在时报错
9、wb 以位进制写模式打开。只可写
10、wb+ 以二进制读写模式打开。可读可写。当文件不存在时新建
11、ab 以二进制追加模式打开。追加文件,不可读
12、ab+ 以二进制读写模式打开。追加文件。可读可写
拓展:文件的操作
1、f.read([size]) #size为读取的长度,byte为单位
2、f.readline([size]) #读一行,如果定义了size,有可能返回的只是一行的一部分
3、f.readlines([size]) #把文件的每一行作为列表的一个元素,并返回list 。如果有size参数,那么就可能只读到文件的一部分。
4、f.write(str) #将str写到文件中,write()并不会在str后面加上一个换行符
5、f.writelines(seq) #将seq的内容全部写到文件中(多行一次性写入)。同上依然不会在最后一行加换行符。
6、f.close()
7、f.flush() #把缓冲区的内容写入到硬盘
8、f.fileno() #返回一个长整型的“文件标签”
9、f.tell() #返回文件操作编辑的当前位置,以文件的开头为原点
10、f.next() #返回下一行,并将文件操作标记位移到下一行
11、f.seek(offest[,whence]) #将文件操作标记移动到offest的位置。这个offest一般是相对于文件的开头来计算的。但是会根据whence而变化:当whence为0时,表示从头开始,1时表示从当前开始,2时表示从尾开始。
12、