电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

在python中實現導入一個需要傳參的模塊

瀏覽:3日期:2022-06-20 08:01:29
最近跑實驗,遇到了一個問題:

由于實驗數據集比較多,每次跑完一個數據集就需要手動更改文件路徑,再將文件傳到服務器,再運行實驗,這樣的話效率很低,必須要專門看著這個實驗,啥時候跑完就手動修改運行下一個實驗。我個人無法忍受這樣低效率,就想能不能有什么解決的辦法。

我們期望的解決辦法是通過命令行傳參來解決這個問題,因為接下來是需要編寫shell腳本來批量運行實驗,如果用輸入語句的方式顯得太笨拙。

在編寫實驗代碼的時候,我將所有的參數集中到一個py文件中,這樣便于后期的維護,現在的問題就是需要通過命令行傳參的方式改變該文件中的某些值。

關于傳參,python中提供了argparse這一模塊。通過這個模塊 就能很快的實現命令行傳參的功能。

下面舉個例子:

文件test1.py

import argparsefrom 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運行:

在python中實現導入一個需要傳參的模塊

我們可以通過改變命令行的參數來改變這個name的值,其實關于這一點也比較好理解,我們可以想成python將這三份代碼拼接在一起,再一起執行。

這樣就實現了我剛才想要的功能。

補充:python調用模塊時傳參出錯的解決方案

首先定義了一個Login模塊

傳參是兩個:username,password

#coding=utf-8def 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()在Test.login中調用該模塊:

#coding=utf-8from selenium import webdriverimport unittest,timefrom public import Loginclass 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.driverdriver.get(self.base_url)Login.login(self,'jinbian3333','jinbian76')#傳參是這兩個text=driver.find_element_by_id('spnUid').textself.assertEqual(text,'jinbian3333@126.com')Login.logout(self) def tearDown(self):self.driver.quit()self.assertEqual([],self.verificationErrors)if __name__ == ’__main__’: unittest.main()可是運行后發現出錯:

在python中實現導入一個需要傳參的模塊

明明傳參是'jinbian3333','jinbian76',為什么登錄信息是圖中呢?

回頭查看被調用模塊,

在python中實現導入一個需要傳參的模塊

按我理解就是 加了' ' 就不是變量了,是常量了, 你調用了該模塊,即使傳參 它還是按照模塊本身的設置:“username”'password'運行

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: B2B网站_B2B免费发布信息网站_B2B企业贸易平台 - 企资网 | 智能家居全屋智能系统多少钱一套-小米全套价格、装修方案 | 注塑_注塑加工_注塑模具_塑胶模具_注塑加工厂家_深圳环科 | 河南砖机首页-全自动液压免烧砖机,小型砌块水泥砖机厂家[十年老厂] | 外贸资讯网 - 洞悉全球贸易,把握市场先机 | 浙江寺庙设计-杭州寺院设计-宁波寺庙规划_汉匠 | 淘气堡_室内儿童乐园_户外无动力儿童游乐设备-高乐迪(北京) | 保定市泰宏机械制造厂-河北铸件厂-铸造厂-铸件加工-河北大件加工 | 10吨无线拉力计-2吨拉力计价格-上海佳宜电子科技有限公司 | 西门子伺服控制器维修-伺服驱动放大器-828D数控机床维修-上海涌迪 | 转子泵_凸轮泵_凸轮转子泵厂家-青岛罗德通用机械设备有限公司 | elisa试剂盒-PCR试剂盒「上海谷研实业有限公司」 | 热缩管切管机-超声波切带机-织带切带机-无纺布切布机-深圳市宸兴业科技有限公司 | 南京和瑞包装有限公司| 河南正规膏药生产厂家-膏药贴牌-膏药代加工-修康药业集团官网 | 数码听觉统合训练系统-儿童感觉-早期言语评估与训练系统-北京鑫泰盛世科技发展有限公司 | 针焰试验仪,灼热丝试验仪,漏电起痕试验仪,水平垂直燃烧试验仪 - 苏州亚诺天下仪器有限公司 | 杭州中策电线|中策电缆|中策电线|杭州中策电缆|杭州中策电缆永通集团有限公司 | 电子书导航网_电子书之家_电子书大全_最新电子书分享发布平台 | 吊篮式|移动式冷热冲击试验箱-二槽冷热冲击试验箱-广东科宝 | 心肺复苏模拟人|医学模型|急救护理模型|医学教学模型上海康人医学仪器设备有限公司 | LOGO设计_品牌设计_VI设计 - 特创易| 楼承板-开闭口楼承板-无锡海逵楼承板 | 焊缝跟踪系统_激光位移传感器_激光焊缝跟踪传感器-创想智控 | 运动木地板厂家_体育木地板安装_篮球木地板选购_实木运动地板价格 | 万博士范文网-您身边的范文参考网站Vanbs.com | 油罐车_加油机_加油卷盘_加油机卷盘_罐车人孔盖_各类球阀_海底阀等车用配件厂家-湖北华特专用设备有限公司 | 骨龄仪_骨龄检测仪_儿童骨龄测试仪_品牌生产厂家【品源医疗】 | 无锡装修装潢公司,口碑好的装饰装修公司-无锡索美装饰设计工程有限公司 | 冷却塔风机厂家_静音冷却塔风机_冷却塔电机维修更换维修-广东特菱节能空调设备有限公司 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | 全自动不干胶贴标机_套标机-上海今昂贴标机生产厂家 | 税筹星_灵活用工平台_企业财务顾问_财税法薪综合服务平台 | 联系我们-腾龙公司上分客服微信19116098882 | 广州展台特装搭建商|特装展位设计搭建|展会特装搭建|特装展台制作设计|展览特装公司 | 特材真空腔体_哈氏合金/镍基合金/纯镍腔体-无锡国德机械制造有限公司 | 济南货架定做_仓储货架生产厂_重型货架厂_仓库货架批发_济南启力仓储设备有限公司 | 517瓜水果特产网|一个专注特产好物的网站 | 步进电机_agv电机_伺服马达-伺服轮毂电机-和利时电机 | 骨密度检测仪_骨密度分析仪_骨密度仪_动脉硬化检测仪专业生产厂家【品源医疗】 |