能调用方法的一定是对象。
对文件进行操作
打开文件
f = open('axe','r') #打开文件,只读模式,r+为读写模式,文件的操作权柄
f = open('axe','w') #只写模式,不可查看,一旦打开,清空文件内容,w+为读模式,一般不用,文件的操作权柄,三者都是没有文件存在,就创建文件
f = open('axe','a') #只写模式,不清内容,在文件最末尾追加写的内容,a+追加,读
with open('axe','r') as f: #打开文件,进行操作,完后会自动关闭文件,推荐
with open('axe','r') as f_read,open('axe1','w') as f_write: #同时管理若个文件对象
打开文件的模式
r
w
a
r+ #读写模式
w+ #写读模式,会先清空文件,只适合用来读后来写入的内容
a+ #追加,读模式,光标在末尾,从光标开始加内容,读的时候光标自动移动到首位,推荐用
关闭文件
f.close() #关闭文件,如果不是用with方法打开,则文件调用完必须写上,否则有可能会出问题
文件操作的一些常用方法
f.read() #读取文件内容,光标指针移动
f.write('....') #写入内容,会将内容先放在缓存区里,文件关闭后再写入磁盘,因此有了flush操作的需求
f.readline() #读取文件,一行一行读,光标位置移动,打印下来是一行内容,再次打印为下一行内容
f.readlines()#打印结果为所有行的一个列表
f.tell() #打印光标指针位置
f.seek(1) #调整光标位置到1
f.flush() #将缓存里的数据立刻转入磁盘,可以用来做进度条
f.truncate(1) #截断,默认从最开始位置截去,1表示从1位置开始截,删去
对文件内容进行for循环遍历
for i in f.readlines(): #不用,因为内存问题
for i in f: #for内部迭代器,用一个取一个,用过的从内存里自动清理,用这个来对文件进行遍历操作
实现进度条
import sys
def processBar(num,total):
rate = num/total
rate_num = int(rate*100)
if rate == 100:
r = '\r%s>%d%%\n'%('='*rate_num,rate_num)
else:
r = '\r%s>%d%%'%('='*rate_num,rate_num)
#print(r,flush = True,end = '')可以
sys.stdout.write(r)
sys.stdout.flush