首页 > 求助:将Python脚本转化为可被调用的模块?

求助:将Python脚本转化为可被调用的模块?

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

# -*- coding: GBK -*-
__author__ = 'Kevin'
import os
import re

def traverse(path):
    '''
    遍历指定路径下的所有文件
    '''
    filesName = []
    for root,dirs,files in os.walk(path):
        for fn in files:
            filesName.append(os.path.join(root,fn))
        return filesName

def 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 None

filesList = 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 os
import re

def traverse(path):
    '''
    遍历指定路径下的所有文件
    '''
    filesName = []
    for root,dirs,files in os.walk(path):
        for fn in files:
            filesName.append(os.path.join(root,fn))
    return filesName

def 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 None

def 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 crashCount

if __name__ == '__main__':
    filesList = traverse('D:\\TestDoc')
    print crashlist(filesList)

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

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

【热门文章】
【热门文章】