import job文件夹模块

当一个文件夹下有很多文件时,可以在文件夹下增加init.py文件。 然后该文件夹包括的所有文件就是 一个包,

当一个文件夹下有 init .py时,意为该文件夹是一个包(package)

需要在job文件夹下面增加__init__.py文件,表示这个文件夹本身就是一个包。

all 是一个重要的变量,用来指定此包(package)被import *时,哪些模块(module)会被import进

可以重写 all ,如 all = [‘当前所属包模块1名字’, ‘模块1名字’],如果写了这个,则会按列表中的模块名进行导入。

demo

main.py中。
from job import jobs_all

job文件夹中
logger = logging.getLogger('jobs')

from config import config
from .bean import Bean
from .bean_app import BeanApp
from .sign_jr import SignJR
from .daka_app import DakaApp
from .double_sign import DoubleSign
from .data_station import DataStation
from .double_sign_V2 import DoubleSignV2
from .double_sign_V1 import DoubleSignV1
__all__ = ['jobs_all', 'logger']

jobs_mobile = [DakaApp, BeanApp, DataStation]
jobs_web = [Bean, SignJR]
jobs_all = jobs_mobile + jobs_web + [DoubleSign]

ModuleNotFoundError

ModuleNotFoundError: No module named '__main__.common'; '__main__' is not a package

引用的目录问题,如果是测试 的话,把两个文件放在一个目录下。

同时删除__init__.py 然后删除common前面的. 就可以了。

“/”:表示根目录

“./”:表示当前目录 /可以省写成.

“../”:表示上级目录

正则

s是指空白,包括空格、换行、tab缩进等所有的空白,

S刚好相反 这样一正一反下来,就表示所有的字符,完全的,一字不漏的

d:用于匹配从0到9的数字;

w:用于匹配字母,数字或下划线字符;

W: 与w相反。

re.search()方法扫描整个字符串,并返回第一个成功的匹配。如果匹配失败,则返回None

re.search(pattern, string, flags=0)

pattern : 正则中的模式字符串。

string : 要被查找替换的原始字符串。

flags : 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

Python的string前面加上‘r’

在Python的string前面加上‘r’, 是为了告诉编译器这个string是个raw string,不会被自动转义

Python 的If..elf..else:

if '0000' == find_value(sign_pattern, r.text):
    sign_days = int(find_value(days_pattern, r.text))
    self.logger.info('打开成功,获得钢镚数: {}'.format(sign_days))
elif '0015' == find_value(sign_pattern, r.text):
    self.logger.info('今天钢镚已经打卡了')
else:
    self.logger.info('钢镚打卡异常')

本文由 hcb 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论