---
# System prepended metadata

title: Judy的Python開放課程
tags: [python, 入門, Judy]

---

# 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`