上下文管理器:開啟檔案,執行完with語句內容之後,自動關閉檔案物件
with open(』/tmp/passwd』) as f:
等同於f = open(』/tmp/passwd』)
with open('/tmp/passwd') as f1,\
open('/tmp/passwbackup','w+')as f2:
等同於 # 將第乙個檔案的內容寫入第二個檔案中
f2.write(f1.read())
with open('/tmp/passwd') as f1:
content = f1.read()
with open('/tmp/passwdbackup','w+') as f2:
f2.write(content)
f2.seek(0,0) 將指標位置放置在開始位置,不然後面列印不出來。因為指標在末尾
#iterable:生成乙個物件,可以對其進行遍歷
f = open('data.txt')
print(isinstance(f,iterable))
for i,item in enumerate(f):
if i == 10: # 取出檔案中前10個字元
break
print(i,item)
def bylineread(fimename):
with open(fimename) as f:
line = f.readline()
while line:
yield line
line = f.readline()
read:是乙個生成器物件
read = bylineread('data.txt')
print(read) 會生成乙個生成器
print(next(read)) 通過next讀取生成器內容
import string
import random
def creat():
dd = '01-af-3b'
num = string.hexdigits
for i in range(3):
n = random.sample(num,2)
dd = dd + '-'+''.join(n).upper()
return dd
def main():
with open('rr','r+') as f1:
for i in range(100):
ds = creat()
f1.write(ds + '\n')
print(f1.read())
main()
import random
def ss():
dd = '172.25.254'
s= str(random.randint(0,255))
dd = dd + '.'+str(s)
return dd
def nn():
with open('ips.txt','r+') as f2:
for i in range(1200):
vn = ss()
# print(vn)
f2.write(vn + '\n')
nn()
def sorted_ip(filename,count=10):
ips_dict = dict()
with open(filename) as f:
for ip in f:
if ip in ips_dict:
ips_dict[ip] += 1
else:
ips_dict[ip] = 1
sorte_ip = sorted(ips_dict.items(),key=lambda
x:x[1],reverse=true)[:count]
return sorte_ip
print(sorted_ip('ips.txt'))
with上下文管理器
在執行 with 語句時,首先執行 with 後面的 open 執行完 後,會將 的結果通過 as 儲存到 f 中 然後在下面實現真正要執行的操作 在操作後面,並不需要寫檔案的關閉操作,檔案會在使用完後自動關閉 實際上,在檔案操作時,並不是不需要寫檔案的關閉,而是檔案的關閉操作在 with 的上下文...
with上下文管理器
上下文管理器 任何實現了enter 和exit 法的物件都可稱之為上下 管理 器,上下 管理器物件可以使 with 關鍵字。顯然,件 file 物件也實現 了上下 管理器 方法一class file def init self,filename,mode self.filename filename...
上下文管理器
今天我們聊聊上下文管理器,當然今天所談僅為個人觀點!今天如果不是學生面試回來跟我聊到了上下文管理器,我都忘了python中還有這麼個鬼了。特別寫一篇博文我們簡單聊聊。普通的檔案操作方式,例如 情況01 1 以寫的方式開啟檔案 f open 1.txt w 2 寫入檔案內容 f.write hello...