1,文件打开
文件打开方式:
(1)默认以只读方式打开。
(2)使用‘r+’方式可读写,并且文件指针在文件开头,并不清空文件内容。
(3)“w”和“w+”方式打开时,文件不存在则自动创建文件,文件存在则先将文件内容清空。若要避免清除,可以使用‘a’方式追加写入到文件末尾。
(4)使用‘+’方式,既可以读又可以写。
2,文件读取
(1)readline设置size大小时,len(line) > size return size,len (line) < size return len(line)。
(2)默认缓存大小:io.DEFAULT_BUFFER_SIZE
(3)使用迭代器遍历文件,按行遍历
3,文件写入与写缓存
(1)writelines的参数必须是字符串序列,元组,迭代器。
(2)写缓存,调用write后先将内容写入都“文件缓冲”中,当调用close(),或者flush()后,才会将内容写到设备中,并清除缓冲。
(3)当写入的内容大于缓存区容量时,会自动将内容写入设备。
4,文件关闭
(1)为什么要关闭文件?
1,将写缓存同步到磁盘文件中。
2,系统中打开文件的个数有限制,超过限制将无法打开。
(2)可以使用with语句避免忘记关闭
5,文件指针
文件读写过程可能会存在以下问题:
1,写入文件时,无法读取已经写入的文件,只有关闭后再打开才可以读取到,
2,读取文件时,无法再次读取已经读取过的内容。
其实这跟文件指针有关,当我们对文件操作时,文件内部会有一个文件指针移动来定位当前位置。刚才的问题图解:
当open时文件指针是在初始位置1,当写入4个字节内容是文件指针位置就在4,再read时,文件指针从4移到6,所以,无法读取到前面写入的内容。
当open时文件指针是在初始位置1,当读取3个字节内容是文件指针位置就在3,再read时,文件指针从3移到5,所以,无法读取到前面刚读取的内容。
文件指针操作:
偏移相对位置为os模块当中的SEEK_SET、SEEK_CUR、SEEK_END:
若要查看当前文件偏移量可以使用tell()方法
1,文件属性
2,标准文件
3,文件命令行参数
sys模块提供sys.argv属性,通过该属性可以得到命令行参数。sys.argv为字符串列表。
1,os模块
2,shutil模块