首页 > 代码库 > python 批量修改包名

python 批量修改包名

#coding=utf-8
import os
#import re

# 设置编码为utf-8 否则会报错。。这时候 sublime控制台会报乱码。但是别担心,utf-8 文件 并不会报错
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )

#基础包名
basePackage=com.emark.base.注解
#基于基础包名的基本路径名,这里必须是unicode 打开。。。。我也不知道为何别的字符串不用这样写。。。。,其他却不用--
#或者
# basedir = unicode("****",‘utf-8‘)
# decode 将编码转为utf-8  encode utf-8 转为其他编码
# 或者 basedir = u"***" 也是utf-8 编码
basedir=u"E:/emark/emark-manager/src/main/java/com/emark/base/注解"

print basedir

for dirPath,dirNames,fileNames in os.walk(basedir):
    for fileName in fileNames:
        start=len(basedir)
        end=len(dirPath)
        #将\ 替换成 .
        despackage=dirPath[start:].replace("\\",".")
        despackage=basePackage+despackage
        print despackage
        file = os.path.join(dirPath,fileName)
        lines=[]
        with open(file,r+) as files:
            lines=files.readlines() # 返回列表list
        with open(file,"w+") as files:
            for line in lines:
                print line
                if line.startswith("package"):
                    line=package +despackage+"\n"
                files.write(line)

 

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312‘),表示将gb2312编码的字符串str1转换成unicode编码。 

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode(‘gb2312‘),表示将unicode编码的字符串str2转换成gb2312编码。 

python 批量修改包名