求助:将Python脚本转化为可被调用的模块?
ringa_lee
ringa_lee 2017-04-17 11:37:30
[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)
ringa_lee
ringa_lee

ringa_lee

全部回复(1)
ringa_lee

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号