• 0006-20180422-自动化第七章-python基础学习笔记


    内容回顾:
    - bytes
    - str 和bytes
    - int
    - str
    - list
    - tuple

    - 深拷贝和浅拷贝



    今日内容:
    数据类型
    - bytes
    - int
    - str
    - bool
    - list
    - tuple
    - dict (字典)
    dic = {'k1':'v1'}
    - values
    - keys
    - items
    - get
    - setdefault
    - fromkeys dict.fromkeys
    - update
    - pop
    - popitem
    - copy
    - clear

    #dict.fromkeys 的3个示例原理:

    val = dict.fromkeys(['k1','k2','k3'],666) #列表内容为键值对的key,后面数值为所有键值对的值
    print(val)
    val['k1'] = 999
    print(val)


    #fromkeys 指向的是同一个列表---value,所以3个可以vlaue相同都为追加后的列表
    val = dict.fromkeys(['k1','k2','k3'],[])
    val['k1'].append(678)
    val['k2'].append(999)
    print(val)


    val = dict.fromkeys(['k1','k2','k3'],[])
    val['k1'].append(666) #修改内部值
    val['k1'] = [1,2,3] #将原k1的vlaue由666,修改为[1,2,3]---重新赋值
    print(val)



    - set (集合)
    di = {"k1","k2"}#set

    """
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    names.add('龙哥') #集合添加元素,如果已经存在,则不再重复添加
    print(names)
    """

    #difference ---差集
    """
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = {'小高','海娇','小狗'}
    val = names.difference(boys) #names 中存在,boys中不存在的数据---name必须是集合,boys可以是列表或元组
    print(val)
    """

    """
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = {'小高','海娇','小狗'}
    val = boys.difference(names) #boys 中存在,names中不存在的数据
    print(val) #创建了一个新就集合---差集部分
    """


    #difference_update
    """
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = {'小高','海娇','小狗'}
    boys.difference_update(names) #先找到差集,然后再重新将差集赋值给boys
    print(boys)
    """

    """
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = {'小高','海娇','小狗'}
    names.difference_update(boys) #先找到差集,然后再重新将差集赋值给names
    print(names)
    """

    """
    #symmetric_difference ----对称差集
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = {'小高','海娇','小狗'}
    val = names.symmetric_difference(boys) #将两个集合分别求差集后,将这些差集和在一起,形成一个新的集合
    print(val)
    """

    """
    #symmetric_difference_update----对称差集重新赋值个某个集合
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = {'小高','海娇','小狗'}
    names.symmetric_difference_update(boys) #将两个集合分别求差集后,再将这些差集和在一起,重新赋值个names
    print(names)
    """

    """
    #discard 集合中删除指定的值
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    names.discard('龙哥')
    print(names)
    """

    """
    #intersection ---求交集
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = {'小高','海娇','小狗'}
    val = names.intersection(boys) #将names和boys求交集
    print(val)
    """

    """
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = {'小高','海娇','小狗'}
    names.intersection_update(boys) #将names和boys求交集,并将交集重新赋值个names
    print(names)
    """

    """
    #union --求并集
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = {'小高','海娇','小狗'}
    val = names.union(boys)
    print(val)
    """

    """
    #isdisjoint 判断是否无交集
    #有交集:False
    #无交集:True
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = {'小高','海娇','小狗'}
    val = names.isdisjoint(boys)
    print(val)

    """

    #issubset 判断是否是子集

    """
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = {'海娇','王老师'}
    val = names.issubset(boys) #names集合不包含在boys集合里,为False
    print(val)
    """
    """
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = {'龙哥','老狗'}
    val = names.issubset(boys) #names集合不包含在boys集合里,为False
    print(val)
    """

    """
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = {'龙哥','老狗'}
    val = boys.issubset(names) #boys 子集包含在names集合里,为True
    print(val)
    """

    """
    #issuperset 判断是否是父集
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = {'龙哥','老狗'}
    val = names.issuperset(boys) #names是boys的父集,结果为True
    print(val)
    """

    """
    #pop --随机删除集合的一个元素
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    v = names.pop()
    print(v)
    """

    """
    #remove - 删除集合里指定的元素,当指定的元素不存在时,会报错
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    #names.remove('老狗')
    names.remove('老狗1') #删除指定的元素不存在时,会报错
    print(names)
    """

    #update --更新
    """
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = ['龙哥1','老狗1']
    names.update(boys) #names必须是个集合,而boys可以是集合或列表等
    print(names)
    """

    """
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    boys = {'龙哥1','老狗1'}
    names.update(boys) #names必须是个集合,而boys可以是集合或列表、元组
    print(names)
    """

    """
    #集合可以通过for循环,也可以取长度
    names = {'龙哥','海角','老狗','成绩','小江','小高'}
    for item in names:
    print(item)
    print(len(names))
    """

    #集合的应用:
    #列表元素去掉重复项
    names = ['龙哥','老狗','海角','老狗','成绩','小江','小高','小江']
    val = set(names)
    print(val)

    names2 = list(val)
    names = names2
    print(names2)
    print(names)



    #集合:
    - 元素,不可变






    文件操作
    美女模特空姐护士联系方式.txt

    1. 路径:D:美女模特空姐护士联系方式.txt
    2. 编码:utf-8
    3. 模式:只读 r, 只写,读写...
    - rb
    - r
    - r+ #常用,能读也能写 *****
    - r+b
    - wb
    - w
    - w+ #写读,先清空,再写了之后才能读,读的是新写的数据
    - w+b
    - ab
    - a #追加,尾部写入
    - a+ #读写,只能在最后面追加写入,通过指针指定也无效
    - a+b

    功能:
    obj = open (文件路径,mode='r+')
    obj.read()
    obj.write()
    obj.seek()
    obj.tell()
    obj.close()
    obj.flush()
    #obj.readline() #等价与py2的obj.xreadlines()
    for line in obj:
    print(line)

    obj.readlines() #不好,逐行读取,放在内容,分割成列表
    obj.xreadlines() #py2中存在


    PS :打开文件后,记得关闭文件
    obj = open(文件路径,mode='r+')
    xxxx
    obj.close()

    自动关闭:

    with open(文件路径,mode='r+') as obj:
    obj.read()
    #代码执行完毕后,自动关闭文件

    只读:
    #读取文件
    #读取utf-8编码的数据,【转换】成unicode(str)编码的数据
    obj = open('D:美女模特空姐护士联系方式.txt',encoding='utf-8',mode='r')
    content = obj.read()
    obj.close()
    print(content) #打印出来的conten为str类型-----unicode编码

    打印出来的conten为str类型




    window--cli示例:
    Microsoft Windows [版本 6.1.7601]
    版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

    C:UsersH>python D:Install-Filepython-workauto-chapter74-file-operate.py
    test---1500

    C:UsersH>

    #读文件rb模式
    obj = open('D:美女模特空姐护士联系方式.txt', mode='rb') #rb模式读取的数据为原始编码,不做转换
    content = obj.read()
    obj.close()
    print(content)
    print(content,type(content))

    # b'xbaxa3xbdxbf--test---1500'
    # b'xbaxa3xbdxbf--test---1500' <class 'bytes'>

    只写:
    - obj = open('美女',mode='wb')
    - obj = open('美女',mode='w',encoding='utf-8')


    示例:
    obj = open('美女',mode='w',encoding='utf-8')
    obj.write("海娇-贾敏")
    obj.close()
    print(data)


    obj = open('美女',mode='wb')
    obj.write("海娇-贾敏22222".encode('utf-8'))
    obj.close()


    只追加: a

    - obj = open('美女',mode='ab')
    - obj = open('美女',mode='a',encoding='utf-8')


    示例:
    obj = open('美女',mode='a',encoding='utf-8')
    obj.write("小红")
    obj.close()
    print(obj)


    obj = open('美女',mode='ab')
    obj.write("龙哥22".encode('utf-8'))
    obj.close()


    r+ 能读写 示例:
    obj = open('美女',mode='r+',encoding='utf-8')
    data = obj.read()
    obj.write("66666")
    obj.close()
    print(data)

    =============================脚本=========================

    字典补充知识相关脚本:

      1 #dic = {'k1':'v1'}
      2 
      3 #1.字典的key都能是什么?
      4 #布尔值:True = 1 ; False = 0
      5 ###!!!不可变:str,int bool,tuple    -----可以作为key的值
      6 ##可变:list,dict,set  ----不可以作为key的值
      7 
      8 #2.字典查找速度快,给予哈希索引
      9 #字典的key在内存中是哈希表,哈希索引
     10 
     11 
     12 
     13 
     14 #True 的值为1,所以True 不能与1同时做为key的值;同理False与0不能同时做为key的值
     15 """
     16 dic = {
     17     'k1':'v1',
     18     2:'v1',
     19     True:'v1',
     20     #1:'vvvv1'
     21     (11,22,33):'v3',
     22     #[11,22,33]:'v4'    #list 列表不能作为key的值
     23 }
     24 print(dic)
     25 
     26 """
     27 
     28 #pop    删除对应的key及其value,同时获取删除key对应的值
     29 """
     30 dic = {'k1':'v1','k2':'v2'}
     31 v = dic.pop('k2')
     32 print(dic)
     33 print(v)
     34 """
     35 
     36 """
     37 #若果key不存在,则不删除key,但同时可以获取不存在key的默认值-----存在默认值的情况,如果没有指定默认值,值报错
     38 dic = {'k1':'v1','k2':'v2'}
     39 v = dic.pop('k22','默认值')
     40 print(dic)
     41 print(v)
     42 """
     43 
     44 #popitem
     45 #删除键值对
     46 
     47 """
     48 dic = {'k1':'v1','k2':'v2'}
     49 v = dic.popitem()
     50 print(dic)
     51 print(v)
     52 """
     53 
     54 """
     55 #分别赋值模式---改进
     56 dic = {'k1':'v1','k2':'v2'}
     57 v1,v2 = dic.popitem()
     58 print(dic)
     59 print(v1,v2)
     60 """
     61 
     62 ### 字典里的设置:添加,修改
     63 
     64 #字典里的---设置---setdefault
     65 #setdefault ----添加---,没有就添加,有就不变
     66 """
     67 dic = {'k1':'v1','k2':'v2'}
     68 dic.setdefault('k3','999')
     69 print(dic)
     70 """
     71 
     72 """
     73 dic = {'k1':'v1','k2':'v2'}
     74 dic.setdefault('k2','999')  #k2的value不发生变化
     75 #dic['k2'] = 999    #将k2的value修改为999
     76 print(dic)
     77 """
     78 
     79 
     80 #update
     81 #key不存在----即没有重复出现时
     82 """
     83 dic = {'k1':'v1','k2':'v2'}
     84 dic.update({'k3':'v4','k5':'v5'})
     85 print(dic)
     86 """
     87 
     88 """
     89 #key存在----将原key的value更新为新的value
     90 dic = {'k1':'v1','k2':'v2'}
     91 dic.update({'k3':'v4','k2':'v5'})
     92 print(dic)
     93 """
     94 
     95 ####----以上都是通过对象(类的对象)得出的功能
     96 
     97 #fromkeys   ----通过类表示出的功能
     98 
     99 """
    100 val = dict.fromkeys(['k1','k2','k3'],666)   #列表内容为键值对的key,后面数值为所有键值对的值
    101 print(val)
    102 val['k1'] = 999
    103 print(val)
    104 
    105 """
    106 
    107 """
    108 #fromkeys   指向的是同一个列表---value,所以3个可以vlaue相同都为追加后的列表
    109 val = dict.fromkeys(['k1','k2','k3'],[])
    110 val['k1'].append(678)
    111 val['k2'].append(999)
    112 print(val)
    113 """
    114 
    115 """
    116 #追加与修改
    117 val = dict.fromkeys(['k1','k2','k3'],[])
    118 val['k1'].append(666)   #修改内部值
    119 val['k1'] = [1,2,3] #将原k1的vlaue由666,修改为[1,2,3]---重新赋值
    120 print(val)
    121 """

    集合---set相关脚本:

      1 #set
      2 
      3 """
      4 names = {'龙哥','海角','老狗','成绩','小江','小高'}
      5 names.add('龙哥') #集合添加元素,如果已经存在,则不再重复添加
      6 print(names)
      7 """
      8 
      9 #difference ---差集
     10 """
     11 names = {'龙哥','海角','老狗','成绩','小江','小高'}
     12 boys = {'小高','海娇','小狗'}
     13 val = names.difference(boys)    #names 中存在,boys中不存在的数据---name必须是集合,boys可以是列表或元组
     14 print(val)
     15 """
     16 
     17 """
     18 names = {'龙哥','海角','老狗','成绩','小江','小高'}
     19 boys = {'小高','海娇','小狗'}
     20 val = boys.difference(names)    #boys 中存在,names中不存在的数据
     21 print(val)  #创建了一个新就集合---差集部分
     22 """
     23 
     24 
     25 #difference_update
     26 """
     27 names = {'龙哥','海角','老狗','成绩','小江','小高'}
     28 boys = {'小高','海娇','小狗'}
     29 boys.difference_update(names)   #先找到差集,然后再重新将差集赋值给boys
     30 print(boys)
     31 """
     32 
     33 """
     34 names = {'龙哥','海角','老狗','成绩','小江','小高'}
     35 boys = {'小高','海娇','小狗'}
     36 names.difference_update(boys)   #先找到差集,然后再重新将差集赋值给names
     37 print(names)
     38 """
     39 
     40 """
     41 #symmetric_difference   ----对称差集
     42 names = {'龙哥','海角','老狗','成绩','小江','小高'}
     43 boys = {'小高','海娇','小狗'}
     44 val = names.symmetric_difference(boys)  #将两个集合分别求差集后,将这些差集和在一起,形成一个新的集合
     45 print(val)
     46 """
     47 
     48 """
     49 #symmetric_difference_update----对称差集重新赋值个某个集合
     50 names = {'龙哥','海角','老狗','成绩','小江','小高'}
     51 boys = {'小高','海娇','小狗'}
     52 names.symmetric_difference_update(boys) #将两个集合分别求差集后,再将这些差集和在一起,重新赋值个names
     53 print(names)
     54 """
     55 
     56 """
     57 #discard    集合中删除指定的值
     58 names = {'龙哥','海角','老狗','成绩','小江','小高'}
     59 names.discard('龙哥')
     60 print(names)
     61 """
     62 
     63 """
     64 #intersection   ---求交集
     65 names = {'龙哥','海角','老狗','成绩','小江','小高'}
     66 boys = {'小高','海娇','小狗'}
     67 val = names.intersection(boys)  #将names和boys求交集
     68 print(val)
     69 """
     70 
     71 """
     72 names = {'龙哥','海角','老狗','成绩','小江','小高'}
     73 boys = {'小高','海娇','小狗'}
     74 names.intersection_update(boys) #将names和boys求交集,并将交集重新赋值个names
     75 print(names)
     76 """
     77 
     78 """
     79 #union  --求并集
     80 names = {'龙哥','海角','老狗','成绩','小江','小高'}
     81 boys = {'小高','海娇','小狗'}
     82 val = names.union(boys)
     83 print(val)
     84 """
     85 
     86 """
     87 #isdisjoint     判断是否无交集
     88 #有交集:False
     89 #无交集:True
     90 names = {'龙哥','海角','老狗','成绩','小江','小高'}
     91 boys = {'小高','海娇','小狗'}
     92 val = names.isdisjoint(boys)
     93 print(val)
     94 
     95 """
     96 
     97 #issubset   判断是否是子集
     98 
     99 """
    100 names = {'龙哥','海角','老狗','成绩','小江','小高'}
    101 boys = {'海娇','王老师'}
    102 val = names.issubset(boys)  #names集合不包含在boys集合里,为False
    103 print(val)
    104 """
    105 """
    106 names = {'龙哥','海角','老狗','成绩','小江','小高'}
    107 boys = {'龙哥','老狗'}
    108 val = names.issubset(boys)  #names集合不包含在boys集合里,为False
    109 print(val)
    110 """
    111 
    112 """
    113 names = {'龙哥','海角','老狗','成绩','小江','小高'}
    114 boys = {'龙哥','老狗'}
    115 val = boys.issubset(names)  #boys 子集包含在names集合里,为True
    116 print(val)
    117 """
    118 
    119 """
    120 #issuperset 判断是否是父集
    121 names = {'龙哥','海角','老狗','成绩','小江','小高'}
    122 boys = {'龙哥','老狗'}
    123 val = names.issuperset(boys)    #names是boys的父集,结果为True
    124 print(val)
    125 """
    126 
    127 """
    128 #pop    --随机删除集合的一个元素
    129 names = {'龙哥','海角','老狗','成绩','小江','小高'}
    130 v = names.pop()
    131 print(v)
    132 """
    133 
    134 """
    135 #remove - 删除集合里指定的元素,当指定的元素不存在时,会报错
    136 names = {'龙哥','海角','老狗','成绩','小江','小高'}
    137 #names.remove('老狗')
    138 names.remove('老狗1') #删除指定的元素不存在时,会报错
    139 print(names)
    140 """
    141 
    142 #update --更新
    143 """
    144 names = {'龙哥','海角','老狗','成绩','小江','小高'}
    145 boys = ['龙哥1','老狗1']
    146 names.update(boys)  #names必须是个集合,而boys可以是集合或列表等
    147 print(names)
    148 """
    149 
    150 """
    151 names = {'龙哥','海角','老狗','成绩','小江','小高'}
    152 boys = {'龙哥1','老狗1'}
    153 names.update(boys)  #names必须是个集合,而boys可以是集合或列表、元组
    154 print(names)
    155 """
    156 
    157 """
    158 #集合可以通过for循环,也可以取长度
    159 names = {'龙哥','海角','老狗','成绩','小江','小高'}
    160 for item in names:
    161     print(item)
    162     print(len(names))
    163 """
    164 
    165 #集合的应用:
    166 #列表元素去掉重复项
    167 names = ['龙哥','老狗','海角','老狗','成绩','小江','小高','小江']
    168 val = set(names)
    169 print(val)
    170 
    171 names2 = list(val)
    172 names = names2
    173 print(names2)
    174 print(names)

    数据类型补充相关知识脚本:

    v1 = [] #空列表    等价于:    list()
    v1 = () #空元组     等价于:   tuple()
    v3 = {} #空字典----默认为字典    等价于:   dict()
    v4 = set()
    print(type(v4))
    print(type(v3))

    文件操作相关脚本:

      1 """
      2 #读文件 utf-8模式
      3 #读取utf-8编码的数据,【转换】成unicode(str)编码的数据
      4 obj = open('D:美女模特空姐护士联系方式2.txt', encoding='utf-8', mode='r')
      5 content = obj.read()
      6 obj.close()
      7 print(content)
      8 print(content,type(content))
      9 # 海娇--test---1500
     10 # 海娇--test---1500 <class 'str'>
     11 #打印出来的conten为str类型-----unicode编码
     12 """
     13 
     14 """
     15 #读文件rb模式
     16 obj = open('D:美女模特空姐护士联系方式.txt', mode='rb')    #rb模式读取的数据为原始编码,不做转换
     17 content = obj.read()
     18 obj.close()
     19 print(content)
     20 print(content,type(content))
     21 
     22 # b'xbaxa3xbdxbf--test---1500'
     23 # b'xbaxa3xbdxbf--test---1500' <class 'bytes'>
     24 """
     25 
     26 #1.文件在硬盘时时,一定是:utf-8,gbk...(以一定编码保存的)
     27 #2.rb, bytes    读取的是原生文件编码,当模式为,rb模式时,不用指定编码方式
     28 #3 r, 转换encoding=utf-8  当模式为r模式时,需要指定读取文件的转换编码方式
     29 
     30 
     31 #在当前目录下打开文件
     32 """
     33 obj = open('log.txt',mode='rb')
     34 data = obj.read()
     35 obj.close()
     36 print(data)
     37 #b'adadfdfefedfxc4xe3xbaxc3xa3xa1'
     38 """
     39 
     40 """
     41 obj = open('log.txt',mode='r',encoding='utf-8')
     42 data = obj.read()
     43 obj.close()
     44 print(data)
     45 print(type(data))
     46 # dadfdfd-您好!
     47 # <class 'str'>
     48 """
     49 
     50 """
     51 obj = open('美女',mode='w',encoding='utf-8')
     52 obj.write("海娇-贾敏")
     53 obj.close()
     54 print(data)
     55 """
     56 
     57 """
     58 obj = open('美女',mode='wb')
     59 obj.write("海娇-贾敏22222".encode('utf-8'))
     60 obj.close()
     61 """
     62 
     63 """
     64 obj = open('美女',mode='a',encoding='utf-8')
     65 obj.write("小红")
     66 obj.close()
     67 print(obj)
     68 """
     69 
     70 """
     71 obj = open('美女',mode='ab')
     72 obj.write("龙哥22".encode('utf-8'))
     73 obj.close()
     74 
     75 """
     76 
     77 """
     78 obj = open('美女',mode='r+',encoding='utf-8')
     79 data = obj.read()
     80 obj.write("66666")
     81 obj.close()
     82 print(data)
     83 
     84 """
     85 
     86 """
     87 #不读只写时,写入的数据覆盖了开始的数据
     88 obj = open('美女',mode='r+',encoding='utf-8')
     89 #data = obj.read()
     90 obj.write("66666")
     91 obj.close()
     92 #print(data)
     93 
     94 """
     95 
     96 """
     97 #读和追加写入
     98 #写入情况1
     99 obj = open('美女',mode='r+',encoding='utf-8')
    100 data = obj.read(1)  #读的光标,但不影响写的光标,仍然追加写入
    101 obj.write("6")
    102 obj.close()
    103 print(data)
    104 """
    105 
    106 """
    107 #写入情况2
    108 obj = open('美女',mode='r+',encoding='utf-8')
    109 data = obj.read(1)
    110 obj.seek(1) #通过光标定位,将要写入的数据指定到当前光标位置,新写入的数据会覆盖当前光标位置的数据
    111 obj.write("6")
    112 obj.close()
    113 print(data)
    114 """
    115 
    116 
    117 """
    118 obj = open('美女',mode='w',encoding='utf-8')
    119 obj.write("海角海角")
    120 obj.close()
    121 """
    122 
    123 
    124 """
    125 #默认读取全部数据
    126 obj = open('美女',mode='r+',encoding='utf-8')
    127 data = obj.read()   #默认读取所有文件内容
    128 obj.close()
    129 print(data)
    130 
    131 """
    132 
    133 """
    134 #指定读取位置,通过r+读取的是字符
    135 obj = open('美女',mode='r+',encoding='utf-8')
    136 data = obj.read(2)   #读取指定文件内容----读取的是字符
    137 #obj.write()    #r+模式下写入的是字符
    138 obj.close()
    139 print(data)
    140 """
    141 
    142 """
    143 #指定读取位置,通过r+b读取的是字节
    144 obj = open('美女',mode='r+b')
    145 data = obj.read(2)   #读取指定文件内容----读取的是字节
    146 #obj.write()    #r+b模式下写入的是字节
    147 obj.close()
    148 print(data)
    149 #b'xe6xb5'
    150 
    151 """
    152 
    153 """
    154 #通过seek指定读取指针的位置
    155 obj = open('美女',mode='r+',encoding='utf-8')
    156 obj.seek(3)     #光标位置永远是字节位置----读取第3个字节后面的数据
    157 data = obj.read()   
    158 obj.close()
    159 print(data)
    160 """
    161 
    162 obj = open('美女',mode='r+',encoding='utf-8')
    163 #obj.seek(3)     #光标位置永远是字节位置----读取第3个字节后面的数据
    164 #data = obj.read()
    165 #obj.close()
    166 #obj.tell()      #读取当前指针的位置
    167 #print(data)
    168 num = int(input('请输入要读取的字符个数:'))
    169 data = obj.read(num)
    170 inp = input('从当前位置开始向后覆盖的内容:')
    171 #obj.seek((obj.tell()))
    172 #obj.writable()  #是否可写
    173 #obj.readable()  #是否可读
    174 #obj.flush()     #强刷入硬盘---不关闭文件强制写入硬盘#默认关闭文件时会写入硬盘,flush指令可强制在不关闭文件的同时将内存中的内容强制写入硬盘
    175 #obj.readline()  #默认只读取1行,再写一个readline则接着上次的指针,继续读取下面一行
    176 #obj.truncate()  #截取,如通过seek将指针指向3,后面使用truncate指令,则只保留指针之前的数据,后面的数据删除了
    177 
    178 #通过for循环读取每一行,直到读取所有数据
    179 for line in obj:
    180     print(line)
    181 
    182 
    183 obj.close()
  • 相关阅读:
    [oracle] linux Oracle 安装配置
    [dns] linux dns 安装配置
    [apache] linux Apache 编译安装
    [yum] linux yum 配置本地和ftp源
    [ftp] linux ftp 安装配置
    [ssh 无密码访问]linux ssh公匙密匙无密码访问
    [php ] linux php 搭建
    [mysql ] linux mysal 修改字符集
    [ mysql ] linux mysql 忘记root密码重置
    国安是冠军
  • 原文地址:https://www.cnblogs.com/mypython2018/p/9658130.html
Copyright © 2020-2023  润新知