濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 在python中實(shí)現(xiàn)導(dǎo)入一個(gè)需要傳參的模塊

在python中實(shí)現(xiàn)導(dǎo)入一個(gè)需要傳參的模塊

熱門(mén)標(biāo)簽:廣告地圖標(biāo)注app 騰訊外呼線路 白銀外呼系統(tǒng) 公司電話機(jī)器人 哈爾濱ai外呼系統(tǒng)定制 陜西金融外呼系統(tǒng) 海南400電話如何申請(qǐng) 激戰(zhàn)2地圖標(biāo)注 唐山智能外呼系統(tǒng)一般多少錢(qián)

最近跑實(shí)驗(yàn),遇到了一個(gè)問(wèn)題:

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

我們期望的解決辦法是通過(guò)命令行傳參來(lái)解決這個(gè)問(wèn)題,因?yàn)榻酉聛?lái)是需要編寫(xiě)shell腳本來(lái)批量運(yùn)行實(shí)驗(yàn),如果用輸入語(yǔ)句的方式顯得太笨拙。

在編寫(xiě)實(shí)驗(yàn)代碼的時(shí)候,我將所有的參數(shù)集中到一個(gè)py文件中,這樣便于后期的維護(hù),現(xiàn)在的問(wèn)題就是需要通過(guò)命令行傳參的方式改變?cè)撐募械哪承┲怠?/p>

關(guān)于傳參,python中提供了argparse這一模塊。通過(guò)這個(gè)模塊 就能很快的實(shí)現(xiàn)命令行傳參的功能。

下面舉個(gè)例子:

文件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

運(yùn)行:

我們可以通過(guò)改變命令行的參數(shù)來(lái)改變這個(gè)name的值,其實(shí)關(guān)于這一點(diǎn)也比較好理解,我們可以想成python將這三份代碼拼接在一起,再一起執(zhí)行。

這樣就實(shí)現(xiàn)了我剛才想要的功能。

補(bǔ)充:python調(diào)用模塊時(shí)傳參出錯(cuò)的解決方案

首先定義了一個(gè)Login模塊

傳參是兩個(gè):username,password

#coding=utf-8
def login(self,username,password):
    driver=self.driver
    self.driver.implicitly_wait(30)#不加等待會(huì)出錯(cuò)
    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中調(diào)用該模塊:

#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")#傳參是這兩個(gè)
        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()

可是運(yùn)行后發(fā)現(xiàn)出錯(cuò):

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

回頭查看被調(diào)用模塊,

按我理解就是 加了" " 就不是變量了,是常量了, 你調(diào)用了該模塊,即使傳參 它還是按照模塊本身的設(shè)置:“username”"password"運(yùn)行

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • python文件目錄操作之os模塊
  • Python使用scapy模塊發(fā)包收包
  • Python基礎(chǔ)之hashlib模塊詳解
  • Python collections模塊的使用技巧
  • Python使用random模塊實(shí)現(xiàn)擲骰子游戲的示例代碼
  • Python爬蟲(chóng)基礎(chǔ)之requestes模塊
  • python常見(jiàn)模塊與用法
  • python中sys模塊的介紹與實(shí)例
  • Python中os模塊的簡(jiǎn)單使用及重命名操作
  • python基于concurrent模塊實(shí)現(xiàn)多線程
  • python xlwt模塊的使用解析
  • Pyhton模塊和包相關(guān)知識(shí)總結(jié)

標(biāo)簽:上海 惠州 鷹潭 常德 黑龍江 四川 黔西 益陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在python中實(shí)現(xiàn)導(dǎo)入一個(gè)需要傳參的模塊》,本文關(guān)鍵詞  在,python,中,實(shí)現(xiàn),導(dǎo)入,一個(gè),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在python中實(shí)現(xiàn)導(dǎo)入一個(gè)需要傳參的模塊》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于在python中實(shí)現(xiàn)導(dǎo)入一個(gè)需要傳參的模塊的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    营口市| 额敏县| 阆中市| 霍邱县| 吕梁市| 临汾市| 饶阳县| 芮城县| 泸州市| 桐庐县| 华亭县| 鹿邑县| 宝清县| 宝兴县| 遵化市| 新兴县| 介休市| 汝南县| 凌云县| 阿克陶县| 安庆市| 竹溪县| 许昌市| 大邑县| 石泉县| 乌鲁木齐市| 嵊泗县| 华安县| 阿巴嘎旗| 福建省| 马鞍山市| 富锦市| 西吉县| 南岸区| 昌图县| 岳普湖县| 炎陵县| 泾源县| 明星| 丹东市| 从化市|