'''使用装饰器对文件进行读写操作'''
# 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使用
import pickle
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 in lines:
pickle.dump(line,dest)
with open(r'c:\Users\PGIDYSQ\Desktop\tset.bat','rb') as fp:
n = pickle.load(fp)#转换行数号
for i in range(n):
#print(pickle.load(fp))
bb = pickle.load(fp)
print(bb)
#struct使用
#struct.pack,unpack==》write(struct),read(9)
'''遍历指定目录下的所有子目录及文件'''
import os
def visitDir(path):
if not os.path.isdir(path):
print('Error')
return
for lists in os.listdir(path):
sub_path = os.path.join(path,lists)
print(sub_path)
if os.path.isdir(sub_path):
visitDir(sub_path)#递归调用
#visitDir(r'F:\UpSVNProject')
#采用os.walk()方法进行遍历
def visitDir2(path):
if not os.path.isdir(path):
print('Error')
return
list_dirs = os.walk(path)
for root,dirs,files in list_dirs:
for d in dirs:
print(os.path.join(root,d))
for f in files:
print(os.path.join(root,f))
#visitDir2(r'F:\UpSVNProject')

python使用装饰器对文件进行读写操作'及遍历文件目录的更多相关文章

  1. Python之装饰器、迭代器和生成器

    在学习python的时候,三大“名器”对没有其他语言编程经验的人来说,应该算是一个小难点,本次博客就博主自己对装饰器.迭代器和生成器理解进行解释. 为什么要使用装饰器 什么是装饰器?“装饰”从字面意思 ...

  2. python之“装饰器”

    在python里装饰器 其定义:装饰器就是一个函数,用来装饰其他函数,就是给其他函数添加功能. 装饰器有两个特点: 1.装饰器不修改被装饰函数的源码: 2.装饰器不锈钢被装饰函数的调用方式. 在编程中 ...

  3. Python各式装饰器

    Python装饰器,分两部分,一是装饰器本身的定义,一是被装饰器对象的定义. 一.函数式装饰器:装饰器本身是一个函数. 1.装饰函数:被装饰对象是一个函数 [1]装饰器无参数: a.被装饰对象无参数: ...

  4. Python札记 -- 装饰器补充

    本随笔是对Python札记 -- 装饰器的一些补充. 使用装饰器的时候,被装饰函数的一些属性会丢失,比如如下代码: #!/usr/bin/env python def deco(func): def ...

  5. python基础——装饰器

    python基础——装饰器 由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数. >>> def now(): ... print('2015-3-25 ...

  6. 【转】详解Python的装饰器

    原文链接:http://python.jobbole.com/86717/ Python中的装饰器是你进入Python大门的一道坎,不管你跨不跨过去它都在那里. 为什么需要装饰器 我们假设你的程序实现 ...

  7. 两个实用的Python的装饰器

    两个实用的Python的装饰器 超时函数 这个函数的作用在于可以给任意可能会hang住的函数添加超时功能,这个功能在编写外部API调用 .网络爬虫.数据库查询的时候特别有用 timeout装饰器的代码 ...

  8. python 基础——装饰器

    python 的装饰器,其实用到了以下几个语言特点: 1. 一切皆对象 2. 函数可以嵌套定义 3. 闭包,可以延长变量作用域 4. *args 和 **kwargs 可变参数 第1点,一切皆对象,包 ...

  9. 理解Python中的装饰器//这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档

    转自:http://www.cnblogs.com/rollenholt/archive/2012/05/02/2479833.html 这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档 ...

随机推荐

  1. 网络协议 16 - DNS 协议:网络世界的地址簿

    [前五篇]系列文章传送门: 网络协议 11 - Socket 编程(下):眼见为实耳听为虚 网络协议 12 - HTTP 协议:常用而不简单 网络协议 13 - HTTPS 协议:加密路上无尽头 网络 ...

  2. 在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目

    发现一台服务器部署管理多个nodejs服务,可以采用二级域名weekly.mwcxs.top,也可以采用固定后缀www.mwcxs.top/weekly的方式,本文先从固定后缀的方式部署管理多个nod ...

  3. 【TCP协议】(1)---TCP协议详解

    TCP协议 本文内容如下:      1)TCP协议概念      2)TCP头部结构和字段介绍      3)TCP流量控制            滑动窗口      4)TCP拥塞控制      ...

  4. C#反射调用方法实例

    下面是两个反射的实例 案例1: 动态调用类中的方法.传入参数,并获得返回值. xxxx:类名 Event:类中的方法 pra1,pra2,pra3:方法对应的入参 DoRet:方法返回的执行结果 Ty ...

  5. Python:黑板课爬虫闯关第三关

    第三关开始才算是进入正题了. 输入网址 http://www.heibanke.com/lesson/crawler_ex02/,直接跳转到了 http://www.heibanke.com/acco ...

  6. 从零开始搭建etcd分布式存储系统+web管理界面

    什么是ETCD 随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作为一个高可用.强一致性的服务发现存储仓库,渐渐为开发人员所关注. 在云计算时代,如何让服 ...

  7. 进阶!基于CentOS7系统使用cobbler实现单台服务器批量自动化安装不同版本系统(week3_day5_part2)-技术流ken

    前言 在上一篇博文<cobbler批量安装系统使用详解-技术流ken>中已经详细讲解了cobbler的使用以及安装,本篇博文将会使用单台cobbler实现自动化批量安装不同版本的操作系统. ...

  8. Nginx系列

    包括nginx的入门和进阶学习. 目录 nginx系列1:认识nginx nginx系列2:搭建nginx环境 nginx系列3:搭建一个静态资源web服务器 nginx系列4:日志管理 nginx系 ...

  9. 策略模式 Strategy 政策Policy 行为型 设计模式(二十五)

    策略模式 Strategy   与策略相关的常见词汇有:营销策略.折扣策略.教学策略.记忆策略.学习策略.... “策略”意味着分情况讨论,而不是一概而论 面对不同年龄段的人,面对不同的商品,必然将会 ...

  10. mysql进阶知识

    一.存储引擎 引擎 指的是一个系统的核心部分 引擎有不同分类是为了适应不同的使用场景 查看mysql支持所有引擎 show engines; MRG_MYISAM 是一堆MYISAM表的集合 用于做水 ...