百里屠苏top  

一. 集合

#集合(set)的作用:  (1)去重;  (2)关系测试
#集合也是无序的
list_1 = [1,4,5,6,4,6]
list_1 = set(list_1)               #列表转成集合自动去除重复的元素
list_2 = set ([2,6,0,66,22])
print(list_1,list_2)
list_1.intersection(list_2)        #取出交集
#print(list_1.intersection(list_2))
print(list_1 & list_2)             #交集
#print(list_1.union(list_2))     #并集
print(list_1 | list_2)
#print(list_1.difference(list_2))   #差集(list_1中有的而list_2中没有的)
print(list_1 - list_2)        # 差集in list_1 but not in list_2
print(list_1.issubset(list_2))     #子集
print(list_1.issuperset(list_2))   #父集
#print(list_1.symmetric_difference(list_2))#对称差集(去掉两个集合中都有的元素
print(list_1 ^ list_2)     #对称差集(幂的运算符号)
#判断是否无交集
list_3 =set([1,3,7])
list_4 = set([2,5,8])
print(list_3.isdisjoint(list_4))
list_3 =set([1,3,7,444])
list_4 = set([2,5,8])

#list_3.add(110)    #添加一项
#list_3.update([444,555,666]) #添加多项

print(list_3.remove(444)) #删除一项   无返回值
print(list_3.discard(3))  #删除一项   无返回值
#print(list_3.pop())   #任意删除,无法指定

#print(len(list_3))  #list_3的长度
print(list_3)

 

 

二.  文件操作

注: 文件以“读”模式打开,则无法写入内容;

        文件以“写”模式打开,则无法读取内容;在写入的时候会冲掉源文件的内容,(切记小心),如果源文件不存在的话,会新建一个文件。

#读取文件
f = open("yesterday.txt")     #文件句柄

#data = f.read()   #读全部

#data = f.readline() #一行一行的读

#for i in range(3):
#   print(f.readline())

#print(data)

#往文件中写入内容
#f.write("金木水火土\n")   #\换行,不然就写在同一行了
#f.write("宫商角徵羽")
#f.write("\n宫商角徵羽....")      #追加内容
#f.close()

#for line in f.readlines():     #适用于小文件
#    print(line.strip())

#打印某一行
for index,line in enumerate(f.readlines()):
    if index == 3:
        print(20*'-')
        continue
    print(line.strip())  
运行结果:

冷冷
清清
凄凄
--------------------
戚戚

f = open("yesterday.txt")
count = 0
for line in f:     
    if count ==3:
        print('--------------')
        count += 1
        continue
    print(line)   #内存里每次只存储一行,读一行删除一行,不占内存(推荐此方法,忘了readlines)
    count += 1
运行结果:

冷冷

清清

凄凄

--------------
戚戚

 

 

 

         当读取文件的时候,一次性读完,类似于指针的一个东东就停在了文件的末尾,我们再一次执行“读”操作的时候,其实是读不到内容的,那么我们怎么在回到文件开头重新读取内容呢???

f = open("yesterday.txt")
print(f.tell())    #查看句柄的位置
print(f.readline())
print(f.readline())
print(f.readline())
print(f.tell())
#f.seek(0)        #回到开始的地方
f.seek(10)
print(f.readline()) 

其他用法:

f = open("yesterday.txt")
print(f.encoding)     #cp936  查看编码格式
print(f.name)         #打印文件名字
f = open("yesterday.txt",'w')
f.write()
f.flush()  #刷新
#简单进度条演示
import sys
import time
for i in range(20):
    sys.stdout.write("#")    #stdout是标准输出
    sys.stdout.flush()       #刷新
    time.sleep(0.4)         #控制出现的进度间隔(单位是秒)

truncate

  •  [trʌŋ'keɪt; 'trʌŋ-]
 
  •  [trʌŋ'ket]

adj. 截短的;被删节的

vt. 把…截短;缩短;使成平面

过去式 truncated过去分词 truncated现在分词 truncating
f = open("yesterday.txt",'r+')    #r+  表示读写

print(f.readline())
print(f.readline())
print(f.readline())
f.write("xiaolaizi")   #他是写在文件最后的
print(f.readline())
print(f.readline())

 

f = open("yesterday.txt",'w+')    #w+  表示写读   (没啥用)
#f = open("yesterday.txt",'a+')    #a+  表示追加读写
f.write("xiaolaizi")   #他是写在文件最后的
f.seek(0)               
print(f.readline())

 

#f = open("yesterday.txt",'rb')   #二进制文件  用在网络传输:视频文件
f = open("yesterday.txt",'wb')   #二进制写
f.write("xiaolaizi\n".encode())   #要进行编码才能写入,(字符串转成二进制)

 


 

 

 

posted on 2018-07-24 19:54  百里屠苏top  阅读(160)  评论(0编辑  收藏  举报