可以将Python脚本变成能被调用的模块吗?,python脚本,以下是我写的一段代码,目


以下是我写的一段代码,目的是从指定目录中批量提示文件中的指定内容(PackageName),以脚本的形式运行可以满足需求,但现在想做成模块以被其它脚本调用,自己改了很久都不能满足,现发出来求助下高手,不胜感激。

# -*- coding: GBK -*-__author__ = 'Kevin'import osimport redef traverse(path):    '''    遍历指定路径下的所有文件    '''    filesName = []    for root,dirs,files in os.walk(path):        for fn in files:            filesName.append(os.path.join(root,fn))        return filesNamedef reCrash(s):    '''    正则匹配提取出crashed package name    如:从// CRASH: com.wandoujia.phoenix2 (pid 3903)中提取出com.wandoujia.phoenix2    '''    m = '//\sCRASH:\s(.*)\s[(]pid\s(.*)[)]'    n = re.match(m,s)    if n:        return n.group(1)    else:        return NonefilesList = traverse('D:\\TestDoc')crashCount = []for i in range(len(filesList)):    try:        for line in open("%s" %filesList[i]):            mCrash = reCrash(line)            if mCrash:                crashCount.append(mCrash)    except:        print('Faild to open file the %s.' %filesList[i])print(crashCount)

通过网友的帮助问题已解决,代码如下:

# -*- coding: GBK -*-__author__ = 'A'import osimport redef traverse(path):    '''    遍历指定路径下的所有文件    '''    filesName = []    for root,dirs,files in os.walk(path):        for fn in files:            filesName.append(os.path.join(root,fn))    return filesNamedef reCrash(s):    '''    正则匹配提取出crashed package name    如:从// CRASH: com.wandoujia.phoenix2 (pid 3903)中提取出com.wandoujia.phoenix2    '''    m = '//\sCRASH:\s(.*)\s[(]pid\s(.*)[)]'    n = re.match(m,s)    if n:        return n.group(1)    else:        return Nonedef crashlist(filesList):    crashCount = []    for filesName in filesList:        try:            for line in open(filesName):                mCrash = reCrash(line)                if mCrash:                    crashCount.append(mCrash)        except:            print('Faild to open file the %s.' %filesName)    return crashCountif __name__ == '__main__':    filesList = traverse('D:\\TestDoc')    print crashlist(filesList)

在同一文件夹下创建一个__init__.py

应该就可以,在其他地方通过import module_name.xxxx 导入了

编橙之家文章,

评论关闭