获取本地数据的步骤:
- 打开文件
- 读取文件
- 写文件
- 关闭文件
第一步:读文件
1 file_obj = open(filename,mode = 'r',buffering = -1, ...) #返回文件对象
- mode为可选参数,默认值为r(读),w(写) ,a(追加) ,r+(读写) ,w+(读写(清空原内容)) , rb(二进制读) , wb(二进制写) ,
- ab(二进制追加) , rb+(二进制读写) , wb+(二进制读写) , ab+(二进制读写)
- buffering也是可选参数,默认为-1(0代表不缓冲,1或者大于1的值表示缓冲一行或指定缓冲大小
2 f.read(size) , f.readline() , f.readlines 方法
with open('firstpro1.txt','r+') as f: p1 = f.read(5) #读出5个字节 p2 = f.read() #默认读取后面所有字符串 print(p1) print(p2)
with open('school.txt') as f: p1 = f.readline() #读取单行。 p2 = f.readlines(2) #读取多行,返回列表,包括换行符,2 表示读两行。 print(p1,p2) #结果 第一中学 ['第二中学 ', '第三中学']
第二步:写文件
1 f.write() , f.writelines() 方法
f = open('firstpro.txt','w') f.write('Hello world!') f.close()
with open('firstpro1.txt','w') as f: f.write('Hello world!')
2 小练习:将刚才使用的school.txt文件的每一行加上序号。然后写入到另一个文件school_1.txt中。
with open ('school.txt','r+') as f: school_name = f.readlines() #多行读取 for i in range(0,len(school_name)): #给内容添加序号 school_name[i] = str(i+1) + ' ' + school_name[i] with open ('school_1.txt','w') as f1: f1.writelines(school_name) #多行写入
第三步:关闭文件
f.close()