Python如何导入传参模块,用什么命令方法
Admin 2022-07-19 群英技术资讯 286 次浏览
由于实验数据集比较多,每次跑完一个数据集就需要手动更改文件路径,再将文件传到服务器,再运行实验,这样的话效率很低,必须要专门看着这个实验,啥时候跑完就手动修改运行下一个实验。我个人无法忍受这样低效率,就想能不能有什么解决的办法。
我们期望的解决办法是通过命令行传参来解决这个问题,因为接下来是需要编写shell脚本来批量运行实验,如果用输入语句的方式显得太笨拙。
在编写实验代码的时候,我将所有的参数集中到一个py文件中,这样便于后期的维护,现在的问题就是需要通过命令行传参的方式改变该文件中的某些值。
关于传参,python中提供了argparse这一模块。通过这个模块 就能很快的实现命令行传参的功能。
文件test1.py
import argparse from argparse import RawTextHelpFormatter parse = argparse.ArgumentParser(description="The parameters for the feature select method", formatter_class=RawTextHelpFormatter) parse.add_argument('name', type = str) args = parse.parse_args() name = args.name
文件test3.py
import test1 str = test1.name + 'asdasdasd'
文件test2.py
import test3 print test3.str
我们可以通过改变命令行的参数来改变这个name的值,其实关于这一点也比较好理解,我们可以想成python将这三份代码拼接在一起,再一起执行。
这样就实现了我刚才想要的功能。
补充:python调用模块时传参出错的解决方案
传参是两个:username,password
#coding=utf-8 def login(self,username,password): driver=self.driver self.driver.implicitly_wait(30)#不加等待会出错 driver.switch_to.frame(0) driver.find_element_by_class_name("dlemail").clear() driver.find_element_by_class_name('dlemail').send_keys("username") driver.find_element_by_class_name('dlpwd').clear() driver.find_element_by_class_name('dlpwd').send_keys("password") driver.find_element_by_id("dologin").click() def logout(self): driver=self.driver driver.find_element_by_link_text(u"退出").click() driver.quit()
#coding=utf-8 from selenium import webdriver import unittest,time from public import Login class TestLogin(unittest.TestCase): def setUp(self): self.driver=webdriver.Chrome() self.driver.implicitly_wait(30) self.base_url = "http://www.126.com/" self.verificationErrors = [] def test_login(self): driver=self.driver driver.get(self.base_url) Login.login(self,"jinbian3333","jinbian76")#传参是这两个 text=driver.find_element_by_id("spnUid").text self.assertEqual(text,"jinbian3333@126.com") Login.logout(self) def tearDown(self): self.driver.quit() self.assertEqual([],self.verificationErrors) if __name__ == '__main__': unittest.main()
明明传参是"jinbian3333","jinbian76",为什么登录信息是图中呢?
回头查看被调用模块,
按我理解就是 加了" " 就不是变量了,是常量了, 你调用了该模块,即使传参 它还是按照模块本身的设置:“username”"password"运行
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
内容介绍1.引言2.问题引入3.Python中的*args4.Python中的**kwargs5.总结1.引言在本文中,我们将讨论Python中的*args和**kwargs及
在实际的工作中,我们经常会有这样的需求,一些功能需要执行,但是又可以不马上执行,这时候就可以使用延迟加载执行了。
如果字典中存储了一些值,我想要取出来该怎么操作呢?取出字典中所有的键-值对时,可以使用items()返回一个键值对列表,并配合for循环进行遍历
这篇文章主要介绍了python 使用ctypes调用C/C++ dll详情,文章首先通过导入ctypes模块,加载C/C++ dll到python进程空间展开主题相关内容,需要的小伙伴可以参考一下
我们做项目经常会遇到弹出框,下面这篇文章主要给大家介绍了关于Python Selenium弹窗处理的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008