zoukankan      html  css  js  c++  java
  • Day 8 集合与文件的操作

    一、创建集合两种方式.
    二、添加元素的方式(add、update"属于迭代添加")

     


    一、集合

    # 1. 集合是无序的,不能重复的。
    # 2.集合内元素必须是可哈希的。
    # 3.集合不能更改里面元素
    # 4.集合可以求交集,并集,差集,反交集的.

    #去重
    lis = [1,1,2,2,2,3,4,5,5,5,6]
    set1=set(lis)
    lis=list(set1)
    print(set1)
    print(lis)
    #结果 :{1, 2, 'alex'}

    set1=set({1,2,"alex"})
    print(set1)

    set1.add("女神")
    print(set1)
    # 结果:{1, 2, '女神', 'alex'}
    set1.update("abc")
    print(set1)
    # 结果:{1, 2, '女神', 'alex', 'a', 'b', 'c'}

    #删除
    set1.remove("alex")#按元素删除
    print(set1)
    #结果 {1, 2, 'b', '女神', 'a', 'c'}
    '''

    set1.clear()#清空集合
    print(set1)
    #set()

    #查
    for i in set1 :
    print(i)

    #交集 intersection ,两个集合一样的元素为结果
    set1={1,2,3,4,5,6}
    set2={4,5,6,7,8}
    print(set1 & set2)
    #或者 intersection
    print(set1.intersection(set2))

    set1={1,2,3,4,5,6}
    set2={4,5,6,7,8}
    #并集union ;为两个集合加在一起作为结果
    print(set1 | set2)
    #或者 union参数
    print(set1.union(set2))

    #反交集(^) 两个集合对方都没用的元素做为结果
    set1={1,2,3,4,5,6}
    set2={4,5,6,7,8}
    print(set1 ^ set2)
    print(set1.symmetric_difference(set2))

    #差集 difference :为set1 自己独有的
    print(set1 - set2 )

    #子集
    set1={1,2,3,4}
    set2={1,2,3,4,5,6,7,8}
    print(set1 < set2) # set1 是set2 的子集
    print(set1.issubset(set2))
    #结果为True

    #超集
    print(set2 >set1 )
    print(set2.issuperset(set1))
    #结果为True

    #frozenset 不可变集合,让集合变成不可变类型.

    s2=frozenset(set1)
    print(s2,type(s2))

    二、文件的操作
    #文件的操作
    #1. 文件的路径
    # 2. 编码方式
    # 3.打开方式:只读,只写,读写
    '''

    f=open("C:Hotfixpython_file.txt",encoding="utf-8",mode="r")
    content =f.read()
    print(content)
    f.close()

    '''

    #可能会产生的错误 1 unicode :文件存储的编码与打开的编码不一致
    #路径前加r 或者双//
    '''
    # 读
    #c:\users\administrator\desktop\new.py -->绝对路径
    #同一个文件夹下的文件就是相对路径--->相对路径
    f = open("D:\parcharm\12\Day 8\new.txt","r",encoding="UTF-8")
    content=f.read()
    print(content)
    f.close()
    # 打印结果 :孟宾 你好,fafdadfa;dsf

    #rb一般用于非文件类的文件,图片,视频,文件的下载和上传的功能用b 模式。

    '''

    #r的五种模式
    # 1. f.read()全部读出来
    # 2. f.readline()按行读
    # 3. f.readlines()每一行作为一个元素防止列表中.
    # 4. 推荐方式 循环
    '''
    f=open("new.txt",encoding="utf-8")
    for i in f:
    print(i)
    f.close()
    '''

    #5.f.read(n)-->读取前几个字符
    '''
    f= open("new.txt",mode="r",encoding="utf-8")
    content =f.read(8) -前八个字符
    print(content)
    f.close()
    '''

    #new文件内容:孟宾 你好,fafdadfa;dsf
    #输出结果 :孟宾 你好,fa

    ## bytes --> str 用decoding 语句
    ##只读r ,rb
    # read , readline readlines read(n), for 循环.


    #①写w
    f= open("new.txt","w",encoding="utf-8")
    f.write("alex是someday")
    print(f)
    f.close()
    #输出了如下一段语句<_io.TextIOWrapper name='new.txt' mode='w' encoding='utf-8'>
    #如果没有文件,则创建文件,如果有文件则将原文件内容全部删除再写.

    #②追加,只追加a
    f= open("new.txt","a",encoding="utf-8")
    f.write("wusir 紧跟其后")
    f.close()

    #读写 (先读后写)r+
    '''
    f = open("new.txt","r+",encoding="utf-8")
    f.read()
    f.write("sdsf")
    f.close()
    '''

    #一定要注意先读后写。


    #写读w+

    '''
    f = open("new.txt","w+",encoding="utf-8")
    f.write("aaa")
    f.seek(0)#把光标移动到开头,按照字节调整.
    print(f.read())
    f.close()

    '''

    #常用方法 read(),readline(),seek(),f.truncate(3)截取按字节
    # read readable ,readline readlines ,for 循环,seek ,tell, write ,writeable ,truncate.


    # with 语句
    with open("new.txt","r",encoding="utf-8")as f1:
    f1.read()
    print(f1)

    #一个句子操作多个句柄 。
    with open("new.txt","r",encoding="utf-8")as f1, open("new1.txt","r",encoding="utf-8"):

    #改动文件
    # ① 创建一个新的文件
    # ② 读取一个原文件
    # ③ 将原文件的内容通过你想要的方式进行更改并写入新文件
    # ④ 将原文件删除
    # ⑤ 将新文件重命名
    '''

    改动文件方法一 、
    import os
    with open("D:\parcharm\12\Day 8\new.txt","r",encoding="utf-8")as f1, open("D:\parcharm\12\Day 8\new2.txt","w",encoding="utf-8")as f2:
    #③ 将原文件的内容通过你想要的方式进行更改并写入新文件
    old = f1.read()
    new =old.replace("alex","SB")
    f2.write(new)
    # ④ 将原文件删除
    os.remove("new.txt")
    # ⑤ 将新文件重命名
    os.rename("new2.txt","new.txt")
    '''

    #改进用 for 循环
    import os
    with open("D:\parcharm\12\Day 8\new.txt","r",encoding="utf-8")as f1, open("D:\parcharm\12\Day 8\new2.txt","w",encoding="utf-8")as f2:
    #③ 将原文件的内容通过你想要的方式进行更改并写入新文件
    for i in f1:
    i = i.replace("alex", "SB")
    f2.write(i)
    # ④ 将原文件删除
    os.remove("new.txt")
    # ⑤ 将新文件重命名
    os.rename("new2.txt","new.txt")
  • 相关阅读:
    shell之for和if实现批量替换多目录下的文件
    问题:Linux报swap空间占用过高,但物理内存还有空余
    git常用命令汇总
    VMware下liunx虚拟机仅主机模式上网
    通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
    Linux启动过程简述
    Nginx禁止ip访问或IP网段访问方法
    解决docker主机配置了DaoCloud.io的加速后重启失败问题Failed to start Docker Application Container Engine
    Windows下用python来获取微信撤回消息
    Oracle 参数文件spfile
  • 原文地址:https://www.cnblogs.com/mengbin0546/p/8385982.html
Copyright © 2011-2022 走看看