• Python基础(三)


    一. 集合

    #集合(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("金木水火土
    ")   #换行,不然就写在同一行了
    #f.write("宫商角徵羽")
    #f.write("
    宫商角徵羽....")      #追加内容
    #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
    ".encode())   #要进行编码才能写入,(字符串转成二进制)

     

  • 相关阅读:
    C++模板总结
    Service介绍(MediaPlayer应用)
    Java创建WebService服务及客户端实现
    Tomcat服务器常用配置和HTTP简介
    JavaWeb学习篇之----HTTP协议详解
    JSP/Servlet(一)
    servlet+jsp+java实现Web 应用
    MySQL多表查询
    Java XML解析工具 dom4j介绍及使用实例
    java socket编程
  • 原文地址:https://www.cnblogs.com/bltstop/p/9362199.html
Copyright © 2020-2023  润新知