我們在學習Python的時候,除了用pip安裝一些模組之外,有時候會從網站下載安裝包下來安裝,我也想要把我自己編寫的模組做成這樣的安裝包,該怎麼辦,如何發布呢?大概需要以下四個步驟:1.首先為模組建立一個檔案夾。舉個簡單的栗子,你寫了一個add.py模組檔案,裡面有個add方法實現加法。這第一步就需要你建立一個檔案夾。並把add.py複製到這個檔案夾裡,為簡單起見,我們把檔案夾就命名為addadd
發現太多人不會用等待了,博主今天實在是忍不住要給大家講講等待的必要性。很多人在群裡問,這個下拉框定位不到、那個彈出框定位不到…各種定位不到,其實大多數情況下就是兩種問題:1 有frame,2
用selenium做自動化,有時候會遇到需要類比滑鼠操作才能進行的情況,比如單擊、雙擊、點擊滑鼠右鍵、拖拽等等。而selenium給我們提供了一個類來處理這類事件——ActionChainsselenium.webdriver.common.action_chains.ActionChains(driver)這個類基本能夠滿足我們所有對滑鼠操作的需求。1.ActionChains基本用法首先需要瞭解ActionChains的執行原理,當你調用ActionChains的方法時,不會立即執行,而是會
檔案上傳是所有UI自動化測試都要面對的一個頭疼問題,今天博主在這裡給大家分享下自己處理檔案上傳的經驗,希望能夠協助到廣大被檔案上傳坑住的seleniumer。首先,我們要區分出上傳按鈕的種類,大體上可以分為兩種,一種是input框,另外一種就比較複雜,通過js、flash等實現,標籤非input我們分別對這兩種進行分析:1.input標籤眾所周知,input標籤是可以直接send_keys的,這裡也不例外,來看程式碼範例:樣本網址:http://www.sahitest.com/demo/php
發現太多人不會用等待了,今天實在是忍不住要給大家講講等待的必要性。很多人在群裡問,這個下拉框定位不到、那個彈出框定位不到…各種定位不到,其實大多數情況下就是兩種問題:1 有frame,2
今天跟大家分享下selenium中根據父子、兄弟、相鄰節點定位的方法,很多人在實際應用中會遇到想定位的節點無法直接定位,需要通過附近節點來相對定位的問題,但從父節點定位子節點容易,從子節點定位父節點、定位一個節點的哥哥節點就一籌莫展了,別急,且看博主一步步講解。1. 由父節點定位子節點最簡單的肯定就是由父節點定位子節點了,我們有很多方法可以定位,下面上個例子:對以下代碼:<html><body><div id="A"><!--父節點定位子節點-->
很多人在群裡問,這個下拉框定位不到、那個彈出框定位不到…各種定位不到,其實大多數情況下就是兩種問題:1 有frame,2 沒有加等待。殊不知,你的代碼運行速度是什麼量級的,而瀏覽器載入渲染速度又是什麼量級的,就好比閃電俠和凹凸曼約好去打怪獸,然後閃電俠打完回來之後問凹凸曼你為啥還在穿鞋沒出門?凹凸曼分分中內心一萬隻羊駝飛過,欺負哥速度慢,哥不跟你玩了,拋個異常撂挑子了。那麼怎麼才能照顧到凹凸曼緩慢的載入速度呢?只有一個辦法,那就是等嘍。說到等,又有三種等法,且聽博主一一道來:1.
初學python,小緣緣出了幾道題: 有一 list a = [1, 2, 3, 4, 5, 6] 請將 a 依 0, 1 1, 2 2, 3 3, 4 4, 5 5, 6 列印輸出, 2.將a list 倒序成 [6, 5, 4, 3, 2, 1] 3.將a 中的偶數挑出 *2 ,結果為 [4, 8, 12] 基本上實現: 複製代碼 代碼如下: a=[1,2,3,4,5,6] for i in a: print a.index(i),',',i a.reverse(); print a
為了做好相容性,只能選擇相容:冒號。 很簡單,修改一下Cookie.Morsel 複製代碼 代碼如下: #!/usr/bin/python # -*- coding: utf-8 -*- """MorselHook, fix Cookie.CookieError: Illegal key value: ys-tab:entrance:e """ import Cookie import string _Morsel = Cookie.Morsel class
函數參數的使用又有倆個方面值得注意:1.函數參數是如何定義的 2.在調用函數的過程中參數是如何被解析先看第一個問題,在python中函數參數的定義主要有四種方式: 1.F(arg1,arg2,...) 這 是最常見的定義方式,一個函數可以定義任意個參數,每個參數間用逗號分割,用這種方式定義的函數在調用的的時候也必須在函數名後的小括弧裡提供個數相等的 值(實際參數),而且順序必須相同,也就是說在這種調用方式中,形參和實參的個數必須一致,而且必須一一對應,也就是說第一個形參對應這第一個實參。例 如:
我要一大群的類都具有一中特點,我怎麼給他們加上呢?模板模板嗎,我從這個模板建立一群類不就OK了?那就需要元類了。霍霍》 定義一個元類(就所一個類的模板!莫多想,還要記住這是類層級的,不是對象層級的!): 複製代碼 代碼如下: class MyMeta(type): def __init__(cls,name,bases,dic): print cls.__name__ print name def __str__(cls):return 'Beautiful class
1 安裝配置開發環境1.1 準備安裝下載以下軟體Eclipse for C/C++SUN JDK 1.6 不一定要1.6,1.5的也可以Python3.1 Python2.6.4 Pythone2.5.2mod_python-3.3.1.win32-py2.5-Apache2.2MySQL-python-1.2.2.win32-py2.5pysqlite-2.5.
使用win32com模組開發window ActiveX的樣本:(如果你還沒有裝win32com模組的話,請到http://python.net/crew/skippy/win32/Downloads.html下載)。 複製代碼 代碼如下: # SimpleCOMServer.py class PythonUtilities: _public_methods_ = ['SplitString'] _reg_progid_ = "Python.Utilities" _reg_clsid_ = "{
想使用Regex來擷取一段文本中的任一字元,寫出如下匹配規則: (.*) 結果運行之後才發現,無法獲得換行之後的文本。於是查了一下手冊,才發現Regex中,“.”(點符號)匹配的是除了分行符號“\n”以外的所有字元。 以下為正確的Regex匹配規則: ([\s\S]*) 同時,也可以用 “([\d\D]*)”、“([\w\W]*)” 來表示。 Web技術之家_www.waweb.cn 在文字檔裡, 這個運算式可以匹配所有的英文 /[ -~]/
>>> teststr = '我的eclipse不能正確的解碼gbk碼!' >>> teststr '\xe6\x88\x91\xe7\x9a\x84eclipse\xe4\xb8\x8d\xe8\x83\xbd\xe6\xad\xa3\xe7\xa1\xae\xe7\x9a\x84\xe8\xa7\xa3\xe7\xa0\x81gbk\xe7\xa0\x81\xef\xbc\x81' >>> tests2 =
open(filename,mode,buffer) 其中第一個參數是要開啟的檔案的檔案名稱,必選;第二個是開啟檔案,可選;第三個為緩衝區,可選。預設情況下是以“讀”模式開啟檔案。該函數返回的是流類型對象。 mode有如下幾種: r:讀模式(預設值) w:寫入模式 a:追加寫入模式 b:二進位模式 t:文字模式(預設值) +:更新已有硬碟檔案(讀和寫入模式) U:通用換行模式(Universal new line mode) 如果到開啟的檔案不存在或者其他問題,會跑出IOError異常。
首先下載最新版本的python。www.python.org,目前版本為3.1。 接下來是安裝,在windows下python的安裝與其他應用程式一樣,不多複述。 在windows下,即可以使用命令列的方式,也可以使用IDLE來開發python。首先介紹命令列的方式:設定PATH,將python的安裝路徑添加至PATH環境變數中即可。在命令列中輸入python,會顯示相應的版本號碼,並進入至python工作環境中去。另外一種方式是IDLE,這個是python預設安裝的開發環境。
首先,介紹if-else條件陳述式。if語句是用來根據運算式的真假來有選擇的執行特定的程式塊,控製程序的流程。用法同java等語言。對於else if,有一個elif的簡寫方式。 例如: 複製代碼 代碼如下: if x > 3: print("greater") elif x == 3: print("eq") else: print("small") 接下來介紹while語句。while語句的作用是在條件運算式為真時,重複執行特定的程式塊。 首先看一段樣本程式,然後在給予說明:
下面就先定義一個函數: 複製代碼 代碼如下:def foo(): print('function') foo() 在上述代碼中,定義了一個名為foo的函數,這個函數沒有參數。最後一行代碼的功能是調用這個函數。這是一個函數的最簡單形式。下面來介紹一下有參數的函數: 複製代碼 代碼如下:def foo(): print('function') def foo1(a,b): print(a+b) foo()
源碼如下 :儲存成utf-8 bd.py 檔案 複製代碼 代碼如下:#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import urllib ,urllib2 import re def baidu(w): url= "http://www.baidu.com/s?" values = { "w":w.encode('gbk','ignore') } data = urllib.urlencode(values) newurl