【隨堂筆記】作業系統與檔案系統基礎


  • 作業系統:常駐於記憶體中的程式,其他程式可以在需要使用時從硬碟中載入。(需要統籌電腦資源和管理軟體與硬體之間的互動等)
    主要任務: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 常見指令對照
Windows MacOS/Linux 指令說明
cd cd 切換工作目錄(移動到資料夾)
cd pwd 取得目前工作目錄所在位置
dir ls 列出目前檔案列表
move mv 移動檔案
set export 設定環境變數
del rm 刪除檔案
cls clear 清除終端機畫面上內容
copy cp 複製檔案
exit exit 離開終端機






你可能感興趣的文章

[Math] 平方根(square root)範例

[Math] 平方根(square root)範例

Cmder 更改 lambda λ 符號

Cmder 更改 lambda λ 符號

DAY25:Detect Pangram

DAY25:Detect Pangram






留言討論