- 作業系統:常駐於記憶體中的程式,其他程式可以在需要使用時從硬碟中載入。(需要統籌電腦資源和管理軟體與硬體之間的互動等)
主要任務:CPU 中央處理器管理、Memory 記憶體管理、File 檔案管理 和 I/O 週邊裝置管理 - CPU process:
(來源:第 12 期電腦科學概論 & 程式設計思維入門共學營)
新產生 (new):行程正在新產生中
執行 (running):指令正在執行
等待(waiting):等待某個事件的發生(ex. 等待 Input/Output 輸入輸出)
就緒 (ready):該行程正等待指定一個 CPU 處理器來執行
結束 (terminated):該行程完成執行 - 一般使用下列三種記憶體管理:
routine 動態載入法:當使用到再載入記憶體
overwrite 覆蓋法:非共用的記憶體部分在沒使用時可以透過覆蓋來增加使用空間
swap 交換法:透過使用硬碟當作輔助記憶體,在記憶體和硬碟中切換來增加記憶體使用空間
p.s. 通常為了保護作業系統的記憶體,記憶體位址會在從虛擬位址對應到實際實體位址時會作檢查,避免影響到作業系統所使用的記憶位址 - File 檔案管理
一般路徑分為兩種:
相對路徑(relative path):以相對於目前資料夾所在位置來定義路徑,所以路徑可能會隨著目前資料夾位置改變而改變。其中 .
代表目前資料夾位置,..
代表上一層資料夾,若是 /
則是指到根(root)資料夾
絕對路徑(absolute path):一個絕對位置的概念,不會因為目前目錄位置而改變
NOTE !!
Windows 需要在路徑字串前加上 r 代表後面接的是 raw string 才不會把 \
視為跳脫字元r'C:\Program Files (x86)\Tesseract-OCR\tesseract'
若沒使用 r 則需要跳脫字元 \ 來表示路徑符號 \:'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract'
Linux 和 MacOS 則沒有這個問題,因為其路徑符號為斜線 /
- 使用
open('檔案路徑', '讀寫模式')
來取得 file object。最後記得 close
關掉檔案。記得開檔案後要關掉,避免造成記憶體流失(memory leak) 系統資源的浪費。file_object = open('./demo.txt', 'r')
file_object.close()
- Python 讀取檔案常用指令:
read([size])
、readline()
和 readlines()
(1) read([size]) -> size = byte,從檔案當前位置起讀取 size 大小的位元組(bytes)file_object = open('./demo.txt', 'r')
# 讀取全部檔案案內容變成字串
print(file_object.read())
# 沒有填size,最後會回傳整個檔案內容
(2) readline([size]) -> 適合用於大型檔案# 每次讀出一行內容,因此在讀取時佔用記憶體較小
file_obj = open('./data.txt', 'r')
# 每次讀取一行,_ 是一個佔位符號,當沒有使用到變數時可以使用
for _ in range(3):
print(file_obj.readline())
file_obj.close()
(3) readlines() -> 不適用於大型檔案# 讀取整個檔案所有行,並將每行內容儲存在一個列表(list)中,每一行作為一個列表元素。
# 讀取內容成為列表,檔案一行代表一個元素,可以使用迭代方式操作
file_content_list = file_object.readlines()
for file in file_content_list:
print(file)
file_object.close()
- Python 寫入檔案:write()
file_object = open('./demo.txt', 'w')
# 若需要換行可以於字串最後加入: \n 為換行符號
file_object.write('Java is awesome\n')
file_object.write('Python is awesome')
file_object.close()
- Windows 和 MacOS/Linux 常見指令對照