'''使用装饰器对文件进行读写操作'''
#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')