python文件下载速度 装饰器_python使用装饰器对文件进行读写操作'及遍历文件目录...

‘‘‘使用装饰器对文件进行读写操作‘‘‘

#def check_permission(func):#‘‘‘演示嵌套函数定义及使用‘‘‘#def wrapper(*args,**kwargs):#‘‘‘*args:接收任意多个实参并存入元组中;**kwargs:接收关键字参数显示赋值并存入字典中‘‘‘#if kwargs.get(‘username‘) != ‘admin‘:#raise Exception(‘Sorry,You are not allowed‘)#return func(*args,**kwargs)#return wrapper#

#class ReadWriteFile(object):## 装饰器#@check_permission #read = check_permission(read)#def read(self,username,filename):#return open(filename,‘r‘).read()#

#def write(self,username,filename,content):#with open(filename,‘a+‘) as op:#采用with上下文管理语句#op.write(content)##open(filename,‘a+‘).write(content)## 普通函数使用#writes = check_permission(write)#

#t = ReadWriteFile()#print(t.read(username=‘admin‘,filename=r‘c:\Users\PGIDYSQ\Desktop\1111111e.gen‘))#print("*"*60)#t.write(‘admin‘,filename=r‘c:\Users\PGIDYSQ\Desktop\1111111e.gen‘,content=‘增加内容...‘)#print("-"*60)

#with open(r‘c:\Users\PGIDYSQ\Desktop\1111111e.gen‘) as fp:##print(list(map(len,fp.readlines())))#print(list(enumerate(fp.readlines())))## for line in fp:## print(line)#pickle使用

importpickle

srcurl=r‘c:\Users\PGIDYSQ\Desktop\1111111e.gen‘dsturl=r‘c:\Users\PGIDYSQ\Desktop\tset.bat‘with open(srcurl,encoding=‘utf-8‘) as src,open(dsturl,‘wb‘) as dest:

lines=src.readlines()

pickle.dump(len(lines),dest)#行数

for line inlines:

pickle.dump(line,dest)

with open(r‘c:\Users\PGIDYSQ\Desktop\tset.bat‘,‘rb‘) as fp:

n= pickle.load(fp)#转换行数号

for i inrange(n):#print(pickle.load(fp))

bb =pickle.load(fp)print(bb)#struct使用#struct.pack,unpack==》write(struct),read(9)

‘‘‘遍历指定目录下的所有子目录及文件‘‘‘

importosdefvisitDir(path):if notos.path.isdir(path):print(‘Error‘)return

for lists inos.listdir(path):

sub_path=os.path.join(path,lists)print(sub_path)ifos.path.isdir(sub_path):

visitDir(sub_path)#递归调用#visitDir(r‘F:\UpSVNProject‘)#采用os.walk()方法进行遍历

defvisitDir2(path):if notos.path.isdir(path):print(‘Error‘)returnlist_dirs=os.walk(path)for root,dirs,files inlist_dirs:for d indirs:print(os.path.join(root,d))for f infiles:print(os.path.join(root,f))#visitDir2(r‘F:\UpSVNProject‘)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值