-
一琅关、模塊初識
Python的強大之處在于他有非常豐富和強大的標準庫和第三方庫,幾乎你想實現(xiàn)的任何功能都有相應(yīng)的Python庫支持扬绪,以后的課程中會深入講解常用到的各種庫,現(xiàn)在,我們先來象征性的學(xué)2個簡單的炫惩。 - sys
# Author:Scott She
import sys
print(sys.path) # 打印環(huán)境變量
print(sys.argv)
print(sys.argv[2]) # 如果執(zhí)行文件時候傳入的參數(shù)多于或等于三個成立, 否則會報錯
輸入:
$ python sys_mod.py hello world
輸出(把執(zhí)行腳本時傳遞的參數(shù)獲取到了)
['sys_mod.py', 'helo', 'world']
- **os: ** 調(diào)用系統(tǒng)命令
# Author:Scott She
import os
# cmd_res = os.system("ls") # 執(zhí)行命令, 不保存結(jié)果
cmd_res = os.popen("ls").read() # 執(zhí)行命令, 保存結(jié)果, read()函數(shù)從返回對象中取結(jié)果
print("-->", cmd_res)
os.mkdir("new_file") # 創(chuàng)建目錄
- 導(dǎo)入自定義模塊
# Author:Scott She
# 1.導(dǎo)入自定義的guess模塊, 默認會在當前目錄下找;
# 2.當前目錄找不到的話會在系統(tǒng)環(huán)境變量中找, 找不到的話報錯
import guess # 這里的guess模塊為day1(練習(xí)代碼)中的guess.py
若報錯,
1.將guess.py拷貝到當前目錄下;
2.將guess.py拷貝到/usr/local/lib/python3.6/site-packages目錄下(這是我的系統(tǒng)的site-packages的路徑, site-packages一般存放三方庫)
- 二、.pyc是個什么
-
python到底是什么
其實Python和Java/C#一樣阿浓,也是一門基于虛擬機的語言他嚷,我們先來從表面上簡單地了解一下Python程序的運行過程吧。
當我們在命令行中輸入python hello.py時,其實是激活了Python的“解釋器”筋蓖,告訴“解釋器”:你要開始工作了卸耘。可是在“解釋”之前粘咖,其實執(zhí)行的第一項工作和Java一樣蚣抗,是編譯。
熟悉Java的同學(xué)可以想一下我們在命令行中如何執(zhí)行一個Java的程序:
javac hello.java
java hello
只是我們在用Eclipse之類的IDE時瓮下,將這兩部給融合成了一部而已翰铡。其實Python也一樣,當我們執(zhí)行python hello.py時唱捣,他也一樣執(zhí)行了這么一個過程两蟀,所以我們應(yīng)該這樣來描述Python,Python是一門先編譯后解釋的語言震缭。
-
簡述Python的運行過程
在說這個問題之前赂毯,我們先來說兩個概念,PyCodeObject和pyc文件拣宰。
我們在硬盤上看到的pyc自然不必多說党涕,而其實PyCodeObject則是Python編譯器真正編譯成的結(jié)果。我們先簡單知道就可以了巡社,繼續(xù)向下看膛堤。
當python程序運行時,編譯的結(jié)果則是保存在位于內(nèi)存中的PyCodeObject中晌该,當Python程序運行結(jié)束時肥荔,Python解釋器則將PyCodeObject寫回到pyc文件中。
當python程序第二次運行時朝群,首先程序會在硬盤中尋找pyc文件燕耿,如果找到,則直接載入姜胖,否則就重復(fù)上面的過程誉帅。
所以我們應(yīng)該這樣來定位PyCodeObject和pyc文件,我們說pyc文件其實是PyCodeObject的一種持久化保存方式右莱。
.pyc 路徑: /usr/local/lib/python3.6/site-packages/_pycache_