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
其中的\n是换行操作,如果不知道自己机器的换行符是啥,可以在IDLE里这样看,其实使用’\n’一样可以达到换行的效果
>>> Import os
>>> os.linesep
'\r\n'
print(line, end='')
如果不加end=''那么输出的中间会空一行,因为print默认在最后是存在一个换行符的,去掉最后的换行符只要将换行符换成空字符串就可以啦
myFile.seek(0)
将文件指针指向文件的开头位置,因为已经读了一遍文件了,所以文件指针指到文件的末尾,如果还需要重新读取一遍文件,需要将文件指针指向文件头
myFile.readlines()
返回的是一个列表,本例中可以看到该列表有5项,每行都是列表中的一项