#! /usr/bin/env python
#coding=gbk
#文件操作实例--将文件夹下所有图片名称加上'_test'
import re,os,time
#str.split(path) 分割字符串
#'连接符'.join(list)将列表组成字符串 def change_name(path):
global i #这里要定义在函数里面,定义在外面会报错
#判断路径是否是文件或者目录,如果不是,返回错误
if not os.path.isdir(path) and not os.path.isfile(path):
return false
if os.path.isfile(path):
file_path=os.path.split(path)#分解文件路径组成list存入file_path
lists=file_path[1].split('.')#分割文件与文件扩展名
file_ext=lists[-1]#取出后缀名 等价于:file_ext=lists[1],list只有两个数
img_ext=['bmg','jpeg','gif','psd','png','jpg']#图片后缀名
if file_ext in img_ext:
#这里将新文件路径组成,改名的话就将list[0]替换掉
os.rename(path,file_path[0]+'/'+lists[0]+'_test.'+file_ext)
i=i+1
elif os.path.isdir(path):
for x in os.listdir(path):
#通过join将文件添加到目录后面组成文件
change_name(os.path.join(path,x))#os.path.join()在路径处理上很有用
os.chdir("g:/文件操作")
img_dir = 'g:\\文件操作\\图片1'
img_dir = img_dir.replace('\\','/')
i=0
start=time.time()#开始时间
change_name(img_dir)
c=time.time()-start#计算消耗时间
print('共处理了%s张图片'%(i))
print ('程序运行耗时:%0.2f'%(c))

这里如果将global i 定义在函数外面,运行的时候会报错:local variable 'i' referenced before assignment。这个错误的意思就是变量i在引用前没有定义,但是在最开始已经定义了的,通过global关键字引用全局变量来解决问题。在python的函数中和全局同名的变量,如果你有修改变量的值就会变成局部变量,在修改之前对该变量的引用自然就会出现没定义这样的错误了,如果确定要引用全局变量,并且要对它修改,必须加上global关键字。

最新文章

  1. JDBC之存储过程
  2. _mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h':问题的解决 mysql安装python
  3. PING命令入门详解
  4. MySQL drop、delete和truncate的区别
  5. 67. 总结篇:面试中随机数"等概率"vs"不等概率"生成问题[random generator with equal or unequal probability]
  6. Chrome安装FlashPlayer Debug
  7. Sass中的mixin,function,extend
  8. 给JavaScript初学者的24条最佳实践(转:http://www.cnblogs.com/yanhaijing/p/3465237.html)
  9. 【BZOJ 1010】 [HNOI2008]玩具装箱toy (斜率优化)
  10. struts2不能通过ONGL方式取出request中的Atrribute
  11. JVM参数配置大全
  12. uva10622 Perfect P-th Powers
  13. jquery-ui-bootstrap动态添加和删除标签页封装【效果更炫】
  14. Python 日志模块实例
  15. Android SingleTask使用注意点
  16. maven学习笔记--maven项目创建
  17. 题解-python-CodeForces 227B
  18. NETSH.EXE操作SSL
  19. stm32 IO口八种模式区别
  20. php S3调用SDK示例 AmazonS3

热门文章

  1. Kafka笔记--使用ubuntu为bocker(服务器)windows做producer和comsumer(客户端)
  2. Android-4
  3. iOS开发中文件的上传和下载功能的基本实现-备用
  4. Ubuntu 14.04 标题栏实时显示上下行网速、CPU及内存使用情况
  5. CCI_chapter 8 Recurision
  6. Awesome Go
  7. java cannot find the tag library descriptor for "http://java.sun.com/jsp/jstl/core"
  8. 使用python/casperjs编写终极爬虫-客户端App的抓取-ZOL技术频道
  9. poj1011 Sticks(dfs+剪枝)
  10. HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之全然具体解释