pythonsrc
㈠ python文件後綴是什麼
python文件後綴總結:
(1).py:這通常是您編寫的輸入源代碼。
(2).py3:Python3腳本(Python3腳本通常以.py而不是.py3結尾,很少使用)。
(3).pyc:這是編譯好的位元組碼。如果導入一個模塊,python將生成一個*.pyc包含位元組碼的文件,以便再次導入它更容易(也更快)。
.pyc二進制文件可以反編譯成.py文件,反編譯軟體叫Easy Python Decompiler。
(4).pyo:這是在優化(-O)時創建的*.pyc文件,從Python3.5開始,Python將只使用.pyc而不是.pyo和.pyc。
(5).pyd:這基本上是一個Windows DLL文件。
(6).pyi:MyPy存根,存根文件(PEP 484)。
(7).pyw:用pythonw.exe執行的Windows的Python腳本。
(8).pyx:將Cython src轉換為C/C++。
(9).pyz:Python腳本歸檔(PEP 441)(這是一個包含標准Python腳本頭之後的二進制形式的壓縮Python腳本(ZIP)的腳本)。
(10).pywz:用於MS-Windows的Python腳本歸檔(PEP 441)(這是一個包含標准Python腳本頭之後的二進制形式的壓縮 Python腳本(ZIP)的腳本)。
(11).py [cod]:.gitignore中的通配符表示該文件可能是.pyc,.pyo或.pyd。
(12).rpy:包含應用程序或框架特定功能的RPython腳本或Python腳本。
(13).pyde:處理使用的Python腳本。
(14).pyp:Py4D Python插件。
(15).pyt:Python聲明文件。
眾多python培訓視頻,盡在python學習網,歡迎在線學習!
㈡ python中想通過img的src屬性定位。有沒有大佬指點下
如果是爬蟲的話,看這個。最後的中括弧用拉找屬性的
div = body.find("input",id='hidden_title')['src']
㈢ 使用PYTHON正則表達式如何將下面的src圖片地址解析出來
是煎蛋的么,下面是偽代碼
import re
html = "你的網頁代碼"
pat = '[p|/]> *<img src="(.*?)"'
reslist = re.findall(pat, html, re.M)
for x in reslists:
print x
㈣ python源代碼程序文件擴展名
python源代碼程序文件擴展名就是:
.py
㈤ 怎麼樣理解一個python項目的各種文件
在Python中引用是非常簡單的事情,這里需要清楚三個概念就可以了包、模塊、類。類這個就不用說了。
模塊對應的是一個.py文件,那麼mole_name就是這個文件去掉.py之後的文件名,py文件中可以直接定義一些變數、函數、類。
那麼包我們可以看作一個包含__init__.py和一系列.py文件的文件夾,這樣做的目的是為了區別包和普通字元串。
importmole_name
frompackage_nameimportmole_name
frompackage_nameimport *
那麼如何import時,python解釋器如何才能找到該模塊放置的文件位置呢?python尋找模塊的優先順序如下:
1、當前文件目錄
2、環境變數PYTHONPATH
3、sys.path(list類型)
sys.path是list類型,我們可以通過insert(), append()方法來增加模塊導入的搜索路徑,如:
import sys
path = 「……」 #需要增加的路徑
sys.path.insert(0, path)
在import模塊時,該模塊的頂層代碼將會被執行一次。如果該模塊被import多次,例如import A, import B.其中B模塊本身也有import A,那麼只在第一次被import的時候頂層代碼會被執行。
模塊能像包含函數定義一樣,可包含一些可執行語句。這些可執行語句通常用來進行模塊的初始化工作。這些語句只在模塊第一次被導入時被執行。這非常重要,有些人以為這些語句會多次導入多次執行,其實不然。
模塊在被導入執行時,python解釋器為加快程序的啟動速度,會在與模塊文件同一目錄下生成.pyc文件。我們知道python是解釋性的腳本語言,而.pyc是經過編譯後的位元組碼,這一工作會自動完成,而無需程序員手動執行。
什麼時候你應該使用frommoleimport?
如果你要經常訪問模塊的屬性和方法,且不想一遍又一遍地敲入模塊名,使用frommoleimport。
如果你想要有選擇地導入某些屬性和方法,而不想要其它的,使用frommoleimport。
如果模塊包含的屬性和方法與你的某個模塊同名,你必須使用importmole來避免名字沖突。
除了這些情況,剩下的只是風格問題了,你會看到用兩種方式編寫的Python代碼。
盡量少用from mole import *,因為判定一個特殊的函數或屬性是從哪來的有些困難,並且會造成調試和重構都更困難。
其它要點:
包
在創建許許多多模塊後,我們可能希望將某些功能相近的文件組織在同一文件夾下,這里就需要運用包的概念了。包對應於文件夾,使用包的方式跟模塊也類似,唯一需要注意的是,當文件夾當作包使用時,文件夾需要包含__init__.py文件,主要是為了避免將文件夾名當作普通的字元串。__init__.py的內容可以為空,一般用來進行包的某些初始化工作或者設置__all__值,__all__是在from package-name import *這語句使用的,全部導出定義過的模塊。
那麼我們平常新建文件的時候,都是建一個.py文件(類似java,但是python不用建立類,是以模塊為載體)至於怎樣組織包就要功能需要了
在C/C++/Java中,main是程序執行的起點,Python中,也有類似的運行機制,但方式卻截然不同:Python使用縮進對齊組織代碼的執行,所有沒有縮進的代碼(非函數定義和類定義),都會在載入時自動執行,這些代碼,可以認為是Python的main函數。
每個文件(模塊)都可以任意寫一些沒有縮進的代碼,並且在載入時自動執行,為了區分主執行文件還是被調用的文件,Python引入了一個變數__name__,當文件是被調用時,__name__的值為模塊名,當文件被執行時,__name__為'__main__'。這個特性,為測試驅動開發提供了極好的支持,我們可以在每個模塊中寫上測試代碼,這些測試代碼僅當模塊被Python直接執行時才會運行,代碼和測試完美的結合在一起。
典型的Python文件結構:
python import模塊方法
python包含子目錄中的模塊方法比較簡單,關鍵是能夠在sys.path裡面找到通向模塊文件的路徑。
下面將具體介紹幾種常用情況:
(1)主程序與模塊程序在同一目錄下:
如下面程序結構:
`-- src
|-- mod1.py
`-- test1.py
若在程序test1.py中導入模塊mod1, 則直接使用importmod1或from mod1 import *;
(2)主程序所在目錄是模塊所在目錄的父(或祖輩)目錄
如下面程序結構:
`-- src
|-- mod1.py
|-- mod2
| `-- mod2.py
`-- test1.py
若在程序test1.py中導入模塊mod2, 需要在mod2文件夾中建立空文件__init__.py文件(也可以在該文件中自定義輸出模塊介面); 然後使用 from mod2.mod2 import * 或import mod2.mod2.
(3)主程序導入上層目錄中模塊或其他目錄(平級)下的模塊
如下面程序結構:
`-- src
|-- mod1.py
|-- mod2
| `-- mod2.py
|-- sub
| `-- test2.py
`-- test1.py
若在程序test2.py中導入模塊mod1和mod2。首先需要在mod2下建立__init__.py文件(同(2)),src下不必建立該文件。然後調用方式如下:
下面程序執行方式均在程序文件所在目錄下執行,如test2.py是在cd sub;之後執行python test2.py
而test1.py是在cd src;之後執行python test1.py; 不保證在src目錄下執行python sub/test2.py成功。
import sys
sys.path.append("..")
import mod1
import mod2.mod2
(4)從(3)可以看出,導入模塊關鍵是能夠根據
㈥ python文件是以什麼為擴展名的文件
..py - 常規腳本
.py3 - Python3腳本(Python3腳本通常以.py而不是.py3結尾,很少使用)
.pyc - 編譯的腳本(位元組碼)
.pyo - 優化的pyc位元組碼文件(從Python3.5開始,Python將只使用pyc而不是pyo和pyc)
.pyw - 用pythonw.exe執行的Windows的Python腳本
.pyx - 將Cython src轉換為C/C++
.pyd - 作為Windows DLL創建的Python腳本
.pxd - 相當於C/C++頭文件的Cython腳本
.pyi - MyPy存根
.pyi - 存根文件(PEP 484)
.pyz - Python腳本歸檔(PEP 441)(這是一個包含標准Python腳本頭之後的二進制形式的壓縮Python腳本(ZIP)的腳本)
.pywz - 用於MS-Windows的Python腳本歸檔(PEP 441)(這是一個包含標准Python腳本頭之後的二進制形式的壓縮Python腳本(ZIP)的腳本)
㈦ python爬取驗證碼圖片,遇到驗證碼src屬性為完整的網址應該怎麼做
爬蟲中手動輸入驗證碼方法無法獲取圖片src地址
驗證碼在html中圖片標簽內容:
<class=「verCodeImg」 src="/kaptcha.jpg?v=0.234724039578059" οnclick=「verCode(this)」>
< class=「verCodeImg」 src="/kaptcha.jpg?v=0.234724239578059" οnclick=「verCode(this)」>
可知獲取到驗證碼的src地址就能動態的獲得驗證碼
因為驗證碼是動態的!動態的!動態的!
用動態爬取網頁的方法:
要用到selenium庫
其實獲得了驗證碼的src地址,我還是沒能成功登陸
因為即使是相同的鏈接點進去,每一次刷新都會有不同的驗證碼
通過動態網頁打開是一張
解析src地址出來是另一張
㈧ python爬取到了src的鏈接怎麼去下載
把img轉成list然後用個for循環一個個下載唄,下載方法網上搜
㈨ 如何正確認識Python 源文件
該任務會遞歸遍歷所有的子目錄,並編譯所有的 Python 模塊。腳本中沒有採用將 src 目錄硬編碼到調用之處的方式,而是在構建腳本中定義了稱為 src.dir 的屬性。然後,在需要使用這個目錄名的時候。就可以通過 ${src.dir} 來引用。 要運行構建腳本,可從 Eclipse 中打開它。Eclipse 具有內置的 Ant 構建腳本編輯和瀏覽功能。Outline 視圖可以顯示出構建腳本的結構。在 Navigator 視圖中。選擇該構建腳本,用右鍵點擊,然後選擇「Run Ant...」。選擇 compile 目標,然後點擊「Run」。構建腳本執行過程中的輸出信息應該顯示在 Console 視圖中,表示運行成功。 從對上述 pydoc 目標的解析可看出。對Python編程技巧大總結對於Python設計語言特性進行全解析簡讀靈活性的Python編程語言有關Python版本大雜燴如何掌握Python異常處理問題第7 行聲明了目標名稱,並指出它依賴於 init 和 compile 目標。這意味著在運行 pydoc 目標之前,Ant 必須保證 init 和 compile 目標已經運行,如果沒有,則首先運行這兩個目標。 pydoc 目標所依賴的 init 目標在第 3 至第 5 行定義。 init 目標僅僅創建了一個存放 PyDoc API 文檔文件的目錄。如前所述,要為所生成文檔的保存位置定義一個屬性,名為 pydoc.dir。 第8 行開始是 py-doc 任務。如前所述,您傳入生成 pydoc 過程中所使用的 PYTHONPATH 。 destdir 屬性告訴 py-doc 任務將生成的 HTML 文檔輸出到何處。 第 9 至第 11 行定義了在生成文檔的過程中應該處理哪些 Python 源文件。文件集是 Ant 腳本中通用的結構。可用於定義所操作的一組文件。這是一種很強大的特性,它使您能夠通過名字模式、布爾邏輯和文件屬性來選擇所要操作的文件。Ant 文檔中有這方面的完整描述。本例中遞歸選擇了「src」目錄下的所有文件。 Python 源文件中具有標準的單元測試框架(從 Python 2.3 開始。在 Python 2.2 中這只是可選模塊),與 Java jUnit 框架十分類似。測試用例的結構與 jUnit 採用相同的方式。每一個待測試的類和模塊通常都具有自己的測試類。測試類中包含測試裝置(fixture)。它們在 setUp 函數中初始化。每一個測試都編寫為測試類中的一個獨立的測試函數。unittest 框架會在測試函數之間循環往復,先調用 setUp 、再測試函數、然後清除( tearDown )測試函數。請參閱清單 4 中的樣例。 import unittest from pprint import pprint import feedparser class FeedparserTest(unittest.TestCase): """ A test class for the feedparser mole. """ def setUp(self): """ set up data used in the tests. setUp is called before each test function execution. """ self.developerWorksUrl = "testData/developerworks.rss" def testParse09Rss(self): """ Test a successful run of the parse function for a 0.91 RSS feed. """ print "FeedparserTest.testParse09RSS()" result = feedparser.parse(self.developerWorksUrl) pprint(result) self.assertEqual(0, result['bozo']) self.assert_(result is not None) channel = result['channel'] self.assert_(channel is not None) chanDesc = channel['description'] self.assertEqual(u'The latest content from IBM developerWorks', chanDesc) items = result['items'] self.assert_(items is not None) self.assert_(len(items)> 3) firstItem = items[0] title = firstItem['title'] self.assertEqual(u'Build installation packages with solution installation and deployment technologies', title) def tearDown(self): """ tear down any data used in tests tearDown is called after each test function execution. """ pass if __name__ == '__main__': unittest.main() 上述清單是實現 feedparser 模塊基本測試功能的測試類。完整的測試類見 feedParserTest 項目下的 src/feedparserTest/FeedparserTest.py。step 函數負責准備整個測試過程中需要使用的測試裝置,在本例中只有測試用的 RSS 文件的目錄。測試函數將對其進行解析。testParse09Rss 是真正的測試函數。Python 源文件這個函數調用 feedparser.parse 函數,傳遞測試用的 RSS 文件,輸出解析結果,並通過 TestCase 類的 assert 函數執行基本的檢查統作。如果任何 assert 的求值結果不是真,或是在執行過程中拋出任何異常,unittest 就會報告一次測試失敗或錯誤。最後的兩行負責在這個測試類內部運行測試,方法是直接運行該模塊即可。
㈩ python 中如何實現對文件的復制、粘貼
file類中沒有提供專門的文件復制函數,因此只能通過使用文件的讀寫函數來實現文件的復制。這里僅僅給出範例:
src = file("myfile.txt", "w+")
temp = ["hello world! \n"]
src.writelines(temp)
src.close()
src = file("myfile.txt", "r+")
des = file("myfile2.txt", "w+")
des.writelines(src.read())
src.close()
des.close()
shutil模塊是另一個文件,目錄的管理介面,提供了一些用於復制文件,目錄的函數。file()函數可以實現文件的拷貝,聲明如下:
file(src, des)
文件的剪切可以使用move()函數模擬,聲明如下:
move(src,des)
功能:移動一個文件或者目錄到指定的位置,並且可以根據參數des重命名移動後的文件。