範例程式主要來自於W3Schools。
def greeting(name):
print("Hello, " + name)
# 使用mymodule模組並取名為mx
import mymodule as mx
mymodule.greeting("Jonathan")
import math
print(dir(math))
from math import sqrt
print(sqrt(64))
PIP是Python的套件管理器,讓我們可以很簡單的下載我們所需要的套件或模組。
pip list
pip install [套件名稱]
pip uninstall [套件名稱]
myfile = open("檔案名稱","模式")
模式 | 說明 |
---|---|
"r" | 唯讀,若檔案不存在會回傳錯誤 |
"a" | 附加,開啟檔案並在檔案最末尾寫入資料,若檔案不存在會自動建立檔案 |
"w" | 寫入,開啟檔案以寫入資料,並覆蓋舊資料,若檔案不存在會自動建立檔案 |
"x" | 建立,建立檔案,若檔案已存在會回傳錯誤 |
除了以上四種模式外,另外有兩種修飾詞用來指定檔案以何種格式開啟:
修飾詞 | 說明 |
---|---|
"t" | Text mode |
"b" | binary mode |
範例:建立一個文字檔 filesample.txt,其中內容如下:
Line 1: Good morning.
Line 2: Good afternoon.
Line 3: Good night.
情境一:讀取完整檔案
myfile = open("f:\\filesample.txt","r")
print(myfile.read())
情境二:讀取n個字元
myfile = open("f:\\filesample.txt","r")
# 讀取從最前面的10個字元
print(myfile.read(10))
# 接續之前的位置,繼續向後讀取5個字元
print(myfile.read(5))
情境三:一次讀取一行
myfile = open("f:\\filesample.txt","r")
# 讀取一行,印出
print(myfile.readline())
# 讀取一行,不印出
myfile.readline()
# 讀取一行,印出
print(myfile.readline())
情境四:使用迴圈方式讀取檔案
myfile = open("f:\\filesample.txt","r")
# 使用迴圈的方式讀取檔案,每一個迴圈會一次讀取一行
for i in myfile:
print(i)
檔案寫入
根據open的模式決定寫入方法。
語法:file.write(內容)
檔案關閉
語法:file.close()
需使用threading模組。
mythread = threading.Thread(target=[function], args=())
# target:該執行緒要執行的物件
# args:給target調用的引數,Tuple型態
# 註:還有許多引數可使用,未來有需要再研究
注意,args需使用Tuple型態,如果物件本身只有一個引數:
# 錯誤寫法
args=(arg1)
# 正確寫法
args=(arg1,)
mythread.start()
mythread.join()
範例:
import threading
import time
def mytask(x):
for i in range(3):
msg = "Thread {} is running. Count: {}"
print(msg.format(x, i))
time.sleep(1)
# 使用list儲存執行緒
threadlist = []
# 執行緒開始
for i in range(4):
threadlist.append(threading.Thread(target=mytask, args =(i,)))
threadlist[i].start()
# 等待執行緒結束
for i in range(4):
threadlist[i].join()
msg = "Thread {} is completed."
print(msg.format(i))
print ("Total complete")
值得注意的一點是,建立執行緒時,物件需要的引數必須使用args導入,不可一起放在target。
錯誤範例:
import threading
import time
def mytask(x):
for i in range(3):
msg = "Thread {} is running. Count: {}"
print(msg.format(x, i))
time.sleep(1)
# 使用list儲存執行緒
threadlist = []
# 執行緒開始
for i in range(4):
threadlist.append(threading.Thread(target = mytask(i))) # *** 錯誤範例 ***
threadlist[i].start()
# 等待執行緒結束
for i in range(4):
threadlist[i].join()
msg = "Thread {} is completed."
print(msg.format(i))
print ("Total complete")
最後產出結果會跟單執行緒相同,但目前還不太知道該如何解釋這個原因,只能先把此錯誤情境記錄下來: