当前位置: 首页 > news >正文

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:\Users\ZH>python D:\Install-File\python-work\auto-chapter7\4-file-operate.py
test---1500

C:\Users\ZH>

 

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

# b'\xba\xa3\xbd\xbf--test---1500'
# b'\xba\xa3\xbd\xbf--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'\xba\xa3\xbd\xbf--test---1500'
 23 # b'\xba\xa3\xbd\xbf--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'adadfdfefedf\xc4\xe3\xba\xc3\xa3\xa1'
 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'\xe6\xb5'
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()

 

转载于:https://www.cnblogs.com/mypython2018/p/9658130.html

相关文章:

  • 【计算机网络】OSI七层模型图解
  • Java多线程全揭秘
  • 特殊权限set_uid/ set_gid /stick_bit,软链接、硬链接
  • 源码分析----Mybatis数据源与连接池
  • const 有什么用途
  • 架构师的工作都干些什么?!想做架构师必看!
  • 解决 PHPStorm 打开项目一直 indexing 的问题
  • 学以致用十二-----YouCompeteMe巨坑
  • nginx 80端口重定向到443端口
  • [Poetize6] IncDec Sequence
  • Springboot+mybatis整合
  • Django中引入Highcharts
  • 洛谷 P2152 [SDOI2009]SuperGCD (高精度)
  • Linux 基本概念 命令
  • 26. 删除排序数组中的重复项
  • 【RocksDB】TransactionDB源码分析
  • CentOS7简单部署NFS
  • HTTP 简介
  • IDEA常用插件整理
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Vue.js源码(2):初探List Rendering
  • 对象引论
  • 基于 Babel 的 npm 包最小化设置
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 微信小程序填坑清单
  • 与 ConTeXt MkIV 官方文档的接驳
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 你对linux中grep命令知道多少?
  • #《AI中文版》V3 第 1 章 概述
  • #Linux(权限管理)
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (20050108)又读《平凡的世界》
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (七)Knockout 创建自定义绑定
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转)创业的注意事项
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .NET CLR Hosting 简介
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .Net Core与存储过程(一)
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET关于 跳过SSL中遇到的问题
  • .net连接oracle数据库
  • .NET学习教程二——.net基础定义+VS常用设置
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • /var/lib/dpkg/lock 锁定问题
  • [ linux ] linux 命令英文全称及解释
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116