集合是无序的
文件的增删改查
#edit by weiwei xu
#-*- coding:UTF-8 -*-
‘‘‘
f=open(‘haha‘,‘r‘,encoding=‘utf-8‘)#因为windows桌面默认的打开编码是gbk的,所以要指定utf-8
data=f.read()
data2=f.read()
print(data)
print(‘-----data-----%s‘ % data2)#此时光标到上次打的文件最后,因此,data2打出来的空白,什么都没有
f=open(‘haha4‘,‘w‘,encoding=‘utf-8‘)#w代表写模式,创建一个新文件haha3
f.write("我爱北京天安门1111\n")
f.write(‘lalalalalala\n‘)
#这里是显示不出来的,因为这里上面用的w,只能写,不能读的,必须下面重新r,才可以读
f=open(‘haha4‘,‘r‘,encoding=‘utf-8‘)##写完后不能直接
data3=f.read()
print(data3)
‘‘‘
f=open(‘haha‘,‘r‘,encoding=‘utf-8‘)
‘‘‘print(f.readline())#读一行
print(‘------------------------------------‘)
print(f.readlines())#读所有的内容,写成一个列表,每行相当于一个元素
‘‘‘
‘‘‘for i in range(3):
print(f.readline())#打印前3行
print(‘-------------------------------‘)
for line in f:#f在这里是个迭代器的东西
print(line)#一行一行的读,效率最高
‘‘‘
count=0
for line in f:#打印前10行
if count==9:
print(‘我是你的谁是UI世纪东方经历可撒酒疯大立科技撒可富‘)
count +=1
break
else:
print(line)
count+=1
f=open(‘haha‘,‘a‘,encoding=‘utf-8‘)#追加a=append
f.write(‘\nsdjflksjdlkfjdsjflkdsjf\n‘)
f.write(‘sdfksjdflkjuw222222222‘)
print(f.readlines())#append不能直接读
#edit by weiwei xu
#-*- coding:UTF-8 -*-
‘‘‘
f=open(‘haha‘,‘r‘,encoding=‘utf-8‘)
print(f.tell())#打印光标位置
print(f.readline())
print(f.tell())#可以看出来是按照字符来读的,
print(f.readline(5))#从光标开始连续读5个字符
f.seek(0)#光标回到最初,
print(f.readline())
f.seek(10)#光标回到从最初到第10个字符
print(f.readline())#打印第10个字符之后的一行
print(f.encoding)
print(f.flush())#默认是内存满了再刷新,这个是强制刷新,将数据实时刷新写入硬盘
‘‘‘
‘‘‘import sys,time#打印进度条
for i in range(10):
sys.stdout.write(‘#‘)#stdout输出到屏幕
sys.stdout.flush()#如果没有此行,则是等到缓存区满了后统一打印出来,有了此行则是一步步直接打印出来
time.sleep(0.5)
f=open(‘haha‘,‘a‘,encoding=‘utf-8‘)
f.truncate(20)#即使光标在非0上,他也是从0开始截断。
‘‘‘
‘‘‘f=open(‘haha‘,‘r+‘,encoding=‘utf-8‘)#已读和追加的方式打开,写的时候只能最追加到最后
print(f.readline())
print(f.readline())
print(f.write(‘---------------‘))
f=open(‘haha‘,‘w+‘,encoding=‘utf-8‘)#写读,先创建个文件,然后写,然后才能读,此时移动光标到前面,
# 然后插入数据是行不通的,只能最终写到最后,基本没卵
‘‘‘
f=open(‘haha‘,‘rb‘)#网络传输只能用2进制模式,读二进制
print(f.read())
f=open(‘haha‘,‘wb‘)#以二进制编码写入
f.write(‘helloword\n‘.encode(‘utf-8‘))#encode是告知原文件是utf-8模式,不然没办法写入