python 批量修改文件名

这段Python代码演示了如何批量修改文件名,通过增加1000来避免重名,并将文件从GBK编码转换为UTF8编码。首先定义了复制文件到指定路径的函数,然后是转换文件编码的函数,接着获取新的文件名,最后是修改文件名并保存到指定目录的函数。在`test`函数中,指定了源路径和目标路径,调用相关函数进行操作。程序执行完毕后会提示按回车退出。
摘要由CSDN通过智能技术生成
# -*- coding: utf-8 -*-
import os 
import sys
reload(sys)
sys.setdefaultencoding('utf8')

#复制文件到指定路径
def copyFile(sourceDir, targetDir):
	try:
		open(targetDir, "wb").write(open(sourceDir, "rb").read())
	except:
		print "Error: copyFile(sourceDir, targetDir)"

#修改文件编码
def convert( filename, in_enc = "GBK", out_enc="UTF8" ):  
    try:  
        print "convert " + filename,  
        content = open(filename).read()  
        new_content = content.decode(in_enc).encode(out_enc)  
        open("convert"+filename, 'w').write(new_content)  
        print " done"  
    except:  
        print " error" 

#获取新的文件名
def getNewName(name):
	namelist = name.split(".")
	#如果文件名是数字,加1000,否则不做处理
	try:
		newName = int(namelist[0])
		newName += 1000
	except:
		newName = namelist[0]
	newStrName = str(newName)
	namelist[0] = newStrName
	newStrName = ".".join(namelist)
	return newStrName

#修改文件名,保存到指定目录
def changeName(sourcePath, targerPath):
	#转换文件编码格式,读取中文路径
	targerPath = unicode(targerPath, "utf8")
	sourcePath = unicode(sourcePath, "utf8")
	#获取源路径下的所有文件名
	filenames=os.listdir(sourcePath)
	for a in xrange(len(filenames)):
		newStrName = getNewName(filenames[a])
		sourceDir = os.path.join(sourcePath, filenames[a])
		targetDir = os.path.join(targerPath, newStrName)
		copyFile(sourceDir, targetDir)


def test():
	sourcePath = "E:/../test"

	targerPath = "E:/../test1"
	changeName(sourcePath, targerPath)

test()
raw_input("Press Enter Exit") 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值