Python的文件操作主要通过open()函数进行,open()函数是个内置 (built-in) 函数
一般用法如下:
f = open(文件名,模式)
文件名:文件的路径和名字,如果在当前文件夹下,直接写文件名就可以了
模式:一般有如下几种:
Character |
Meaning |
'r' |
只读模式 |
'w' |
只写模式,会将原来的内容擦掉,从头开始写入 |
'x' |
创建文件,如果文件已存在,则创建失败 |
'a' |
继续在文件的末尾写入 |
'b' |
二进制模式 |
'+' |
可读可写 |
这里的’+’模式不是很好理解,
官方文档的解释是这样的:opena disk file for updating (reading and writing)
个人理解如下:
其实平时主要有两种用法嘛,r+ ,w+
自己亲自测试了一下,两者的区别如下:
r+:从开始直接写入文件,也就是从文件头开始覆盖文件,比如原来文件里是abcdefg,当用r+模式写入ABCD时,文件变成ABCDefg了
w+:先将文件清空再写入,比如比如原来文件里是abcdefg,当用w+模式写入ABCD时,文件变成ABCD了
示例如下
__author__ = 'MrChen' #python基本文件操作 myFile = open('静夜思.txt', 'w') myFile.write('静夜思\n窗前明月光,\n疑是地上霜。\n') myFile.close() myFile = open('静夜思.txt', 'a') myFile.write('举头望明月,\n我叫郭德纲。\n') myFile.close() myFile = open('静夜思.txt', 'r') for line in myFile.readlines(): print(line, end='') myFile.seek(0) print(len(myFile.readlines())) myFile.close()
静夜思 窗前明月光, 疑是地上霜。 举头望明月, 我叫郭德纲。 5
>>> Import os >>> os.linesep '\r\n'
print(line, end='')
如果不加end=''那么输出的中间会空一行,因为print默认在最后是存在一个换行符的,去掉最后的换行符只要将换行符换成空字符串就可以啦
myFile.seek(0)
将文件指针指向文件的开头位置,因为已经读了一遍文件了,所以文件指针指到文件的末尾,如果还需要重新读取一遍文件,需要将文件指针指向文件头
myFile.readlines()
返回的是一个列表,本例中可以看到该列表有5项,每行都是列表中的一项