# Judy的Python開放課程 ## OS 檔案系統 ### 絕對路徑與相對路徑 - 絕對路徑: 路徑從根目錄表達 - 相對目錄: 相對於當前工作的路徑 #### 特殊符號 - "." 代表當前資料夾 - ".." 代表上層資料夾 ### OS模組 #### 取得目前工作目錄 Linux ```` bash pwd ```` Python ```` python os.getcwd() ```` #### 檢查路徑方法 ```` python # 檢查是否存在 os.path.exists(path) # 檢查是不是資料夾 不存在返回false os.path.isdir(path) # 檢查路徑是不是檔案 不存在返回false os.path.isfile(path) ```` #### 檔案與目錄的操作 ``` python # 建立一個資料夾 os.mkdir(path) # 刪除一個空資料夾 os.rmdir(path) # 刪除一個檔案 os.remove(path) # 將工作資料夾改到path os.chdir(path) ```` ```` python # 刪除檔案的簡易程式 ```` #### 遍歷目錄樹 深度學習的時候很好用 可以取得資料夾裡所有的檔案 ```` python # 會返回三個值 返回當前目錄的名稱, 子目錄的串列, 目錄底下的檔案串列 os.walk(path) ```` #### system() 可以執行系統命令 以linux為範例 ```` python os.system("cmd") ```` #### 讀取檔案 !!要小心 讀取大檔案可能會讓記憶體爆炸 例如讀取1G的檔案就會使用1G的記憶體 ```` python file_name = "os_test/read_file.txt" # 創建一個檔案物件 file_obj = open(file_name) data = file_obj.read() file_obj.close() ```` #### with關鍵字 應用於開啟檔案和建立檔案物件 ```` python with open(檔案名稱) as 檔案物件: 檔案物件關鍵字 ```` ```` python with open(file_name) as f: data1 = f.read() print(data1) ```` #### 逐行讀取內容 ```` python with open(file_name) as f: for line in f: print(line.strip()) ```` 如果覺得很麻煩 ```` python with open(file name) as f: str_list = f.readlines() str_list = [s.strip() for s in str_list] print(str_list) ```` #### 例子1: New文檔內的CT改成循環數閾值 ````python with open("os_test/news1.txt", encoding="utf8") as f: news1 = f.readlines() news1 = [s.replace("CT", '循環數閾值')] print(news1) ```` #### 例子2:New1文檔查找自己的縣市有沒有在列 ````python is_find = False for sequence in news1: if "縣市" in sequence: is_find = True break if is_find: print("Opps! >< 要小心") else: print("目前沒事! 不過還是要小心") ```` #### 寫入檔案 ##### 模式 - r 讀取模式 - w 寫入模式 - r+ 可讀可寫 - a 在尾部新增資料 ```` python write_file_name = "os_test/write_example_1.txt" with open("os_test/news1.txt", mode="w", encoding="utf8") as f: f.write("Hello! I write my first line."+"\n") ```` 可以將字串後面加上 `\n` 換行 ###### tags: `入門`, `Judy`, `python`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up