语言:python 2.X
BaseConfig.py处理传参示例代码:
#-*- coding: UTF-8 -*- import getopt import sys,os import traceback import utils class BaseConfig(object): _instance = None def __new__(cls, *args, **kwargs): if not cls._instance: cls._instance = super(BaseConfig, cls).__new__( cls, *args, **kwargs) return cls._instance def __init__(self): pass def main(self): arg_list = ["username=", "ip=", "s="] for arg in sys.argv: if arg.startswith('--'): ky = arg.split('=')[0][2:] if '%s='%ky not in arg_list: arg_list.append(ky+'=') opts,args = getopt.getopt(sys.argv[1:],"o:t:",arg_list) BaseConfig.optArgs = opts,args BaseConfig.ip = '' BaseConfig.username = '' BaseConfig.compare = '' BaseConfig.waittime = '' for opt,arg in opts: if opt == '--s': BaseConfig.serialNum = arg if BaseConfig.adbType == None or BaseConfig.adbType == "": BaseConfig.adbType = self.getadbType(BaseConfig.serialNum) elif opt == '--ip': BaseConfig.ip = arg elif opt == '--username': BaseConfig.username = arg elif opt == '-o': BaseConfig.compare = arg elif opt == '-t': BaseConfig.waittime = arg if __name__ == "__main__": ba = BaseConfig() ba.main()
ChildCls.py复用BaseConfig.py处理参数,以及初始化日志示例代码:
#-*- coding: UTF-8 -*- import os import sys import getopt import getpass import logging import traceback import json import httplib import socket import time corepath = os.path.dirname(__file__) scriptpath = os.path.dirname(corepath) sys.path.append(scriptpath) class ChildCls(): def __init__(self,itemName=""): self.argsObj = BaseConfig() try: self.argsObj.main() except Exception,e: print e self.ip = self.argsObj.ip self.username = self.argsObj.username self.waittime = self.argsObj.waittime def initLog(self, rootPath = None): log_start_time = time.strftime('%Y%m%d_%H%M%S') logfilename = str(log_start_time) + ".log" rootpath = "./" if rootPath: rootpath = rootPath + os.sep logpath = rootpath + "logs" + os.sep print logpath if not os.path.exists(logpath): os.makedirs(logpath) logfilename = logpath + logfilename print logfilename logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)s %(message)s', datefmt='%Y-%m-%d %H:%M:%S', filename=logfilename, filemode='a') console = logging.StreamHandler() console.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') console.setFormatter(formatter) if len(logging.getLogger('').handlers)<2: logging.getLogger('').addHandler(console) def exection(self): print self.ip print self.username print self.waittime def main(): global result_msg current_path = os.getcwd() print "current_path: ", current_path try: master = ChildCls() py_root_path = os.path.split(os.path.realpath(__file__))[0] print "py_root_path: ", py_root_path master.initLog(py_root_path + os.sep) logging.info(" ----- Started ------ ") master.exection() except: print "" logging.error(traceback.format_exc()) # return None finally: os.chdir(current_path) logging.info(" -------------- Finished ------------- \r\n" + result_msg + "\r\n") logging.shutdown() if __name__ == "__main__": main() os._exit(0)
传参示例:
python ChildCls.py --ip 123.33.1.4 --username test -t 1000
相关推荐
2. **创建应用**:创建一个Python文件,初始化xweb应用,定义路由和处理函数。 ```python from xweb import App app = App() @app.route('/') def index(req, res): res.text = 'Hello, xweb!' ``` 3. **运行...
2. **接口函数的设计:** 需要设计一个或多个C函数作为Python接口,负责参数解析和C函数的调用。 3. **函数映射和模块结构体:** 编写一个映射表,将C函数映射到Python接口上;同时创建模块结构体,定义模块的相关...
- 模块的初始化和初始化顺序:了解`__init__.py`的作用,以及模块加载的顺序。 - 路径管理:使用sys.path添加或修改Python搜索模块的路径。 6. **并发和异步编程**: - 多线程和多进程:理解GIL(全局解释器锁)...
本篇文章将详细介绍从Python 2.x迁移到Python 3时需要注意的关键知识点,包括新的语法变化、库的变化以及如何处理Unicode等。 #### 二、Python 3的新特性 ##### 1. `print` 成为函数 - **新特性**:在Python 3中...
PyUpdater支持Python 2和Python 3,这从文件名"PyUpdater-2.1.1-py2.py3-none-any.whl"可以看出,它兼容Python 2.7到Python 3.x的版本,并且是独立于操作系统和架构的。 ### PyUpdater核心功能 1. **自动检查更新*...
1. **初始化文件指针位置**: ```python x = open('1.txt', 'r') print(x.tell()) ``` 这里首先打开名为`1.txt`的文件,模式为只读。`print(x.tell())`将打印出当前文件指针的位置,由于刚刚打开文件,此时文件...
Python3 和 Python2 中 int 和 long 的区别? - **Python2**: `int` 表示普通整数,`long` 表示长整数。 - **Python3**: 合并为 `int` 类型,不再区分长整数。 #### 19. xrange 和 range 的区别? - **Python2**...
RoxyAI API可能提供了各种方法,如初始化客户端、发送请求、接收响应等。为了更好地利用这个库,开发者需要熟悉其API接口、参数、返回值和错误处理机制。 在开发过程中,为了确保代码的健壮性,我们还需要考虑异常...
1. **导入库和初始化**: 在 Python 脚本中,首先需要导入 ffmpeg 库,并根据需要初始化 FFmpeg 进程。这通常通过 `ffmpeg` 模块的全局函数完成。 2. **读取和写入多媒体文件**: 使用 `input()` 和 `output()` ...
1. **初始化WebDriver**:创建一个WebDriver实例,指定要使用的浏览器类型。 2. **定义页面对象**:根据网页结构定义页面类,包含页面上的元素和相关的操作方法。 3. **编写测试步骤**:在测试函数中,调用页面对象...
3. **异常处理与日志记录**:库内置了丰富的异常处理机制,可以自动捕获并记录测试过程中出现的问题,同时提供详细的日志输出,便于调试和问题定位。 4. **参数化测试**:允许用户通过参数化来执行不同条件下的测试...
它允许快速生成基础的项目结构,简化了应用的初始化过程。 3. **Paste Compose**:这个组件允许将多个WSGI应用组合在一起,形成一个更复杂的Web应用结构,如使用中间件或者路由分发请求。 4. **Paste Filter**:...
source参数可以初始化数组,它接受不同的格式。 ```python b = bytearray(b'abc') print(b) # 输出bytearray(b'abc') ``` 以上列举的知识点涵盖了Python语言的基础概念以及在运维领域中的具体应用案例,对于...
2. **安全测试**: 通过检测潜在的安全漏洞,如缓冲区溢出、未初始化的变量等。 3. **自动化工具**: 自定义脚本可以自动化重复性的测试和调试任务。 4. **性能分析**: 跟踪函数调用,了解性能瓶颈。 5. **游戏修改**:...
在Python编程中,日志处理是一项非常重要的任务,它能够帮助开发者记录程序运行时的状态,以便于调试、问题排查和性能优化。本文将详细介绍一个简单的Python日志处理类`logsys`,以及如何使用这个类来管理和记录日志...
这个项目是基于TensorFlow 2.x框架进行的,这是一个广泛使用的开源机器学习库,它为构建和训练复杂的神经网络模型提供了便利。 首先,让我们深入理解卷积神经网络(CNN)。CNN是一种专门用于处理图像数据的神经网络...
# 初始化模型、损失函数和优化器 net = DenseNet(growth_rate, blocks, num_classes) loss = gluon.loss.SoftmaxCrossEntropyLoss() trainer = gluon.Trainer(net.collect_params(), 'sgd', {'learning_rate': ...
12.9.2. 加密函数 12.9.3. 信息函数 12.9.4. 其他函数 12.10. 与GROUP BY子句同时使用的函数和修改程序 12.10.1. GROUP BY(聚合)函数 12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法...
12.9.2. 加密函数 12.9.3. 信息函数 12.9.4. 其他函数 12.10. 与GROUP BY子句同时使用的函数和修改程序 12.10.1. GROUP BY(聚合)函数 12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法...
12.9.2. 加密函数 12.9.3. 信息函数 12.9.4. 其他函数 12.10. 与GROUP BY子句同时使用的函数和修改程序 12.10.1. GROUP BY(聚合)函数 12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL...