码迷,mamicode.com
首页 > 编程语言 > 详细

python 批量修改包名

时间:2017-07-08 00:23:40      阅读:412      评论:0      收藏:0      [点我收藏+]

标签:lin   style   readline   基于   join   base   否则   readlines   encode   

#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 批量修改包名

标签:lin   style   readline   基于   join   base   否则   readlines   encode   

原文地址:http://www.cnblogs.com/whm-blog/p/7134509.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!