Python基礎(chǔ)之常用庫常用方法整理
一、os
__file__ 獲取當(dāng)前運(yùn)行的.py文件所在的路徑(D:\PycharmProjects\My_WEB_UI\ConfigFiles\ConfigPath.py) os.path.dirname(__file__) 上面正在運(yùn)行的.py文件的上一級(jí)(D:\PycharmProjects\My_WEB_UI\ConfigFiles) os.path.join(xxx,u'ConfigFiles\elementLocation.ini') 在已獲得的路徑xxx上加上\ConfigFiles\elementLocation.ini
二、configparser
config = configparser.ConfigParser() 創(chuàng)建一個(gè)configparser對(duì)象 config.read(filename) 讀取ini文件,filename為ini文件的路徑 config.sections() 得到ini文件內(nèi)的所有的section,以列表的形式返回 config.items(sectionName) 根據(jù)section的name得到其下的所有鍵值對(duì),再用dict(config.items(sectionName))封裝為字典形式
三、openpyxl
wb = load_workbook('a.xlsx') 讀取文件a.xlsx sheet = wb[sheetname] 根據(jù)名字拿到xlsx文件里對(duì)應(yīng)的頁 sheet.max_row 獲取當(dāng)前頁的最大行數(shù) sheet.max_column 獲取當(dāng)前頁的最大列數(shù) sheet.cell(row = xxx,column = xxx).value 獲取單元格(xxx,xxx)中的值 sheet.cell(row = xxx,column = xxx).value =aa #修改單元格里的值 wb.save(a.xlsx的路徑名) #修改完要保存一下,否則修改不生效
openpyxl庫中沒有方法來獲取去某一行的值,可以自定義:
row_data = [] for i in range(1,sheet.max_column+1): #注意遍歷列的時(shí)候從1開始 cell_value = sheet.cell(row = xxx,column = i).value #xxx就為具體想要獲取的行 row_data.append(cell_value)
四、loguru
logger.debug('this is a debug message') logger.info('this is a info message') logger.warning('this is a warning message') logger.error('this is a error message') logger.success('this is a success message') logger.critical('this is a critical message')
logger.add('xxx.log') 在當(dāng)前同級(jí)目錄下創(chuàng)建一個(gè)xxx.log文件,并將接下來的日志打印到xxx.log里面 logger.add('lowPath/xxx.log') 在當(dāng)前目錄下創(chuàng)建一個(gè)文件夾lowPath,在其中創(chuàng)建xxx.log文件 logger.add(otherPath+'/xxx.log') 事先獲取其他的目錄otherPath,在otherPath下創(chuàng)建xxx.log
五、time
time.sleep(2) 強(qiáng)制休眠兩秒 time.strftime('%Y-%m-%d_%H-%M-%S') 接受當(dāng)前時(shí)間元組,并最終返回對(duì)應(yīng)格式的字符串
六、unittest
基本概念:
testcase 測(cè)試用例,以test開頭,執(zhí)行順序會(huì)按照方法名的ASCII碼值來排序
test suite 測(cè)試套件,testloader把需要一起執(zhí)行的測(cè)試用例加載到套件中,然后一起執(zhí)行
test runner 執(zhí)行測(cè)試用例并返回測(cè)試結(jié)果
test fixture 測(cè)試固件,對(duì)一個(gè)測(cè)試用例環(huán)境的搭建和銷毀常見斷言: assertEqual(a,b,msg=None) 判斷a和b是否相等 assertNotEqual assertTrue(a)
判斷a是否為True assertFalse assertIs(a,b)
判斷a is b assertIsNot assertIsNone(a)
判斷a is None assertIsNotNone assertIn(a,b)
判斷a in b assertNotIn assertIsInstance(a,b)
判斷a是不是b的實(shí)例 assertIsNotInstance 斷言失敗會(huì)報(bào)AssertionError的錯(cuò)
編寫測(cè)試用例
class TestDemo(unittest.TestCase): 繼承unittest模塊里的TestCase def setUp(self) 準(zhǔn)備環(huán)境,執(zhí)行測(cè)試用例的前置條件 def tearDown(self) 環(huán)境還原,執(zhí)行測(cè)試用例的后置條件 def test_01(self) 測(cè)試用例1 if __name__ == '__main__': unittest.main() 執(zhí)行當(dāng)前文件以test開頭的測(cè)試用例 ########################################以下是實(shí)例############################################## import time import unittest from selenium import webdriver from Modules.LoginAction import LoginAction class Login_test(unittest.TestCase): def setUp(self): ''' 準(zhǔn)備好環(huán)境,執(zhí)行測(cè)試用例的前置條件 :return: ''' self.driver = webdriver.Chrome() self.driver.get('https://mail.163.com/') self.driver.maximize_window() def tearDown(self): time.sleep(2) self.driver.quit() def test_01(self): loginAction = LoginAction() loginAction.do_login(self.driver, 'lsqtester001', 'qwer123') time.sleep(2) self.assertIn('lsqtester002',self.driver.page_source) if __name__ == '__main__': unittest.main()
組織測(cè)試用例
suit = unittest.TestSuite() 定義一個(gè)測(cè)試套件 suit.addTest(Login_test('test_01')) 向套件中添加測(cè)試用例 runner = unittest.TextTestRunner() runner.run(suit) 定義testrunner并執(zhí)行已加入測(cè)試套件的測(cè)試用例 loader = unittest.TestLoader() 定義一個(gè)testloader對(duì)象 suit.addTest(loader.discover(TestcasesPath,pattern='Unittest*.py')) 根據(jù)條件將測(cè)試用例加載到套件中 ########################################以下是實(shí)例############################################## import unittest from ConfigFiles.ConfigPath import TestcasesPath from TestCases.Unittest_login import Login_test if __name__ == '__main__': # suit = unittest.TestSuite() # #向套件中添加測(cè)試用例 # suit.addTest(Login_test('test_01')) # suit.addTest(Login_test('test_02')) # # runner = unittest.TextTestRunner() # runner.run(suit) ''' 用discover來組織測(cè)試用例 discover(dir,pattern='Unittest*.py',top_level_dir=None) dir就是存放寫用例的python文件的具體路徑 pattern就是在目錄dir下找形式如同Unittest*.py這樣的文件 如果符合條件的.py文件里有l(wèi)oad_test這個(gè)函數(shù)的話,就會(huì)加載該文件里的測(cè)試用例 如果不存在load_test函數(shù)的話,就會(huì)默認(rèn)加載文件里以test開頭的測(cè)試用例函數(shù) ''' suit = unittest.TestSuite() loader = unittest.TestLoader() suit.addTest(loader.discover(TestcasesPath,pattern='Unittest*.py')) runner = unittest.TextTestRunner() runner.run(suit)
到此這篇關(guān)于Python基礎(chǔ)之常用庫常用方法整理的文章就介紹到這了,更多相關(guān)Python常用庫常用方法整理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python編程開發(fā)之textwrap文本樣式處理技巧
- Python的文本常量與字符串模板之string庫
- Python中使用subprocess庫創(chuàng)建附加進(jìn)程
- Python超簡(jiǎn)單容易上手的畫圖工具庫推薦
- python爬蟲請(qǐng)求庫httpx和parsel解析庫的使用測(cè)評(píng)
- Python高級(jí)文件操作之shutil庫詳解
- Python超簡(jiǎn)單容易上手的畫圖工具庫(適合新手)
- python學(xué)習(xí)之panda數(shù)據(jù)分析核心支持庫
- Python基礎(chǔ)之操作MySQL數(shù)據(jù)庫
- Python繪圖庫Matplotlib的基本用法
- Python爬蟲爬取愛奇藝電影片庫首頁的實(shí)例代碼
- Python Excel處理庫openpyxl詳解
- python使用openpyxl庫讀寫Excel表格的方法(增刪改查操作)
- Python time庫的時(shí)間時(shí)鐘處理
- python數(shù)據(jù)庫批量插入數(shù)據(jù)的實(shí)現(xiàn)(executemany的使用)
- Python爬蟲之必備chardet庫
- python中requests庫+xpath+lxml簡(jiǎn)單使用
- Python格式化文本段落之textwrap庫
相關(guān)文章
Python實(shí)現(xiàn)飛機(jī)大戰(zhàn)項(xiàng)目
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)飛機(jī)大戰(zhàn)項(xiàng)目,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07pandas時(shí)間序列之pd.to_datetime()的實(shí)現(xiàn)
本文主要介紹了pandas時(shí)間序列之pd.to_datetime()的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>2022-06-06Python數(shù)據(jù)處理之pd.Series()函數(shù)的基本使用
Series是帶標(biāo)簽的一維數(shù)組,可存儲(chǔ)整數(shù)、浮點(diǎn)數(shù)、字符串、Python 對(duì)象等類型的數(shù)據(jù),軸標(biāo)簽統(tǒng)稱為索引,下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)處理之pd.Series()函數(shù)的基本使用,需要的朋友可以參考下2022-06-06jupyter notebook更換皮膚主題的實(shí)現(xiàn)
這篇文章主要介紹了jupyter notebook更換皮膚主題的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01用Python代碼自動(dòng)生成文獻(xiàn)的IEEE引用格式的實(shí)現(xiàn)
這篇文章主要介紹了用Python代碼自動(dòng)生成文獻(xiàn)的IEEE引用格式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03如何基于python實(shí)現(xiàn)畫不同品種的櫻花樹
這篇文章主要介紹了如何基于python實(shí)現(xiàn)畫不同品種的櫻花樹,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01