能调用方法的一定是对象
打开 with open(文件绝对路径或者相对路径,‘rwa’)as f:
append 追加
操作 f.read()
关闭 f.close()
f.write('hello world') 文件存在的情况下 ,会清空内容再写入hello world
文件不存在的情况下,会创建再写入hello world
注意!!! 这里清空的操作不是在write的时候执行的,而是在上面打开(w)的时候就已经执行了
==================
py里面的文件句柄方法 fileno
===================
打开文件之后一定要记得关闭文件
====================
文件操作一系列的方法-------------------------------------
f.readline()
readline 一行行的读
f.readlines 输出一个列表,里面是每行内容形成的字符串(包括换行符)
要遍历列表里的字符串的话,用for循环,记得加.strip()去左右两边的空格和换行。!!!
readlines会把打开的文件放到内存里,如果文件很大,一般不用这个
查看光标位置f.tell() 英文一个字母是一个字符,中文的话 一个字母是3个字符。
f.seek() 设置任意位置的光标,方便读操作和写操作 (类似于网络断点续传)
=======================================
f.flush 帮助我们把缓存里面的数据刷到硬盘上去
例子
import sys,time
for i in range(30):
sys.stdout.write('*')
sys.stdout.flush() //这里如果没有flush的话,他会把数据先放到缓存区,等全部循环完,才会一次性刷新到硬盘,而有了flush的话是每次都会刷新到硬盘。
time.sleep(0.1)
print()里面也可以更flush=True 这样就是实时打印了
truncate(5) 可以截取文件里的内容 1代表1个字符
isatty 判断打开的是否是一个终端。
r+模式 ,该怎么读怎么读,但是写的时候只能写在最后
w+模式,文件创建的时候里面被清空了,写了东西之后再去读还是读不到数据,因为光标已经到后面了
a+模式,写入的时候从最后写入,但是读取的时候是是读不到东西的,因为append是追加,光标在最后,读后面读不出东西。
modify_configuration_file.py
zz_read = open('zz', 'r', encoding='utf8')
zz_write = open('zz1', 'w', encoding='utf8')
num = 0
for i in zz_read:
if num == 2:
i = ''.join([i.strip(), "modify "])
num += 1
zz_write.write(i)