python文件_批量改名
#! /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关键字。
python文件_批量改名的更多相关文章
- python文件_改名2
#手动选择路径,批量改名 import os,re,time,tkFileDialog global i #文件名后面增加后缀:txt,png,bng,jpeg,jpg,gif,zip类型的文件 de ...
- python文件_目录
#! /usr/bin/env python #coding=gbk import os import time #设置文件的默认路径,当指定的目录不存在时,引发异常:WindowsError:[er ...
- python文件_读取
1.文件的读取和显示 方法1: f=open(r'G:\2.txt') print f.read() f.close() 方法2: try: t=open(r'G:\2.txt') print t.r ...
- python文件_写入
1.输入的数据写入到一个文本: #这个写入操作不会将原来的数据覆盖掉 n=raw_input('请输入写入的文件数据:') fl2=open('g:/2.txt','a') fl2.write('\n ...
- python文件批量改名
python对文件进行批量改名用到的是os模块中的listdir方法和rename方法. os.listdir(dir) :获取指定目录下的所有子目录和文件名 os.rename(原文件名,新文件名 ...
- python读取txt批量创建文件
python读取txt批量创建文件 pythonbatchfile 前几天有个小问题, 需要批量建立很多文件夹,, 所以手动写了个小的脚本, 后续可以直接使用 读取目录文件, 然后直接创建相应的文件 ...
- 用Python写的批量文件重命名
有些时候下载图片或其他文件,文件名都怪怪的,可选的办法是下载一个文件批量重命名的软件.当然,如果想自己'DIY'一把的话编个Python脚本最好不过了. 下面的代码实现的对指定类型的文件进行批量重 ...
- [原创]Python批量操作文件,批量合并
最近几个小伙伴在手动合并一些文本文件,感觉可以用Python批量实现,就有了这段代码 import os import re import sys def printEnter(f1): #每两个文件 ...
- Batch File Rename Utility(文件批量改名软件) 1.1.4231
软件名称: Batch File Rename Utility(文件批量改名软件) 1.1.4231.23098 软件语言: 英文 授权方式: 免费软件 运行环境: Win7 / Vista / Wi ...
随机推荐
- FJ省队集训DAY4 T3
#include<cstdio> #include<iostream> #include<cmath> #include<cstring> #inclu ...
- Chaos Software Google Sync v10.1.1.0 和Syncovery Pro
Chaos Software Google Sync v10.1.1.0 Release: Chaos.Software.Google.Sync.v10.1.1.0.Incl.Keygen-BEANS ...
- Linq to OBJECT延时标准查询操作符
1.Where 操作符用于限定输入集合中的元素,将符合条件的元素组织声称一个序列结果.2.Select 操作符用于根据输入序列中的元素创建相应的输出序列中的元素,输出序列中的元素类型可以与输入序列中 ...
- linux文件合并
第一:两个文件的交集,并集前提条件:每个文件中不得有重复行1. 取出两个文件的并集(重复的行只保留一份)2. 取出两个文件的交集(只留下同时存在于两个文件中的文件)3. 删除交集,留下其他的行1. c ...
- CH Round #40 - Fimbulvetr::Prologue
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2340%20-%20Fimbulvetr%3A%3APrologue/起源 题意:树上最大流+费用流,源点为树根 ...
- cf443B Kolya and Tandem Repeat
B. Kolya and Tandem Repeat time limit per test 2 seconds memory limit per test 256 megabytes input s ...
- linux内存管理--伙伴系统和内存分配器
3.1页框的管理 所有的页框描述符都存放在mem_map数组中. 3.1.1page数据结构 struct page { page_flags_t flags; //标志 atomic_t _coun ...
- day57:00:26:34
今天开始用博客记录倒计时,也只是为了看看今天做了什么.这也是我第一用博客园记录考研生活了 倒计时57天,我在想每天花时间在这记录生活会不会浪费复习的时间,其实不会的了,不去看微博,少刷新闻....仔细 ...
- Quartz集成springMVC 的方案二(持久化任务、集群和分布式)
Quartz是一个开放源码项目,专注于任务调度器,提供了极为广泛的特性如持久化任务,集群和分布式任务等. Quartz核心是调度器,还采用多线程管理. 1.持久化任务:当应用程序停止运行时,所有调度信 ...
- Android Studio新手全然指引
Android Studio新手全然指引 @author ASCE1885的 Github 简书 微博 CSDN Android Studio的下载及安装 假设你的电脑能够FQ,那么请直接到Andro ...