---
tags: Python學習
---
<style>
.topic{
color:#fa7f20;
font-weight:bold;
}
.blue{
color:#2f7cf7;
}
</style>
# Python學習日記 檔案操作
>參考資料 - Python王者歸來 洪錦魁著
## <span class="topic">取得目前工作目錄</span>
```python=
import os
print(os.getcwd())
```
<br />
## <span class="topic">取得目前工作目錄的絕對路徑</span>
#### 目前工作目錄
```python=
import os
print(os.path.abspath('.'))
> C:\Users\xxxx
```
#### 目前檔案的絕對路徑
```python=
import os
print(os.path.abspath('xxx.py'))
> C:\Users\xxxx\xxx.py
```
<br />
## <span class="topic">檢查路徑是否存在</span>
#### os.path.exists(<span class="blue">path</span>) 判斷路徑是否存在
#### os.path.isabs(<span class="blue">path</span>) 判斷路徑是否為絕對路徑
#### os.path.isdir(<span class="blue">path</span>) 判斷路徑是否為資料夾
#### os.path.isfile(<span class="blue">path</span>) 判斷路徑是否為檔案
<br />
## <span class="topic">檔案與資料夾的操作</span>
#### mkdir(<span class="blue">path</span>) 建立path資料夾
#### rmdir(<span class="blue">path</span>) 刪除path的空資料夾
#### chdir(<span class="blue">path</span>) 將工作資料夾更改至path
#### remove(<span class="blue">path</span>) 刪除path檔案
#### rename(old_path, <span class="blue">new_path</span>) 將檔案更名為new_path
<br />
## <span class="topic">檔案讀取</span>
#### 讀取整個檔案
```python=
file _file = open(path)
data = _file.read()
_file.close()
```
#### 逐行讀取檔案
```python=
with open(path) as _file:
for line in _file:
print(line)
```
```python=
with open(path) as _file:
data = _file.readlines()
```
#### 分批讀取檔案
```python=
chunk = 100
msg = ''
with open(path) as _file:
while True:
txt = _file.read(chunk)
if not txt:
break
msg += txt
print(msg)
```
<br />
## <span class="topic">檔案寫入</span>
```python=
x = 100
with open(path, 'w') as _file:
_file.write(str(x))
```
<br />
## <span class="topic">CSV檔案處理 with Pandas</span>
#### 檔案讀取
```python=
import os
import pandas as pd
path = os.path.join('c:' + os.sep, 'Users', 'XXXX', 'Desktop', 'data.csv')
dt = pd.read_csv(path)
```
#### 檔案寫入
```python=
import os
import pandas as pd
#讀取
path = os.path.join('c:' + os.sep, 'Users', 'XXXX', 'Desktop', 'data.csv')
dt = pd.read_csv(path)
#寫入
toPath = os.path.join('c:' + os.sep, 'Users', 'XXXX', 'Desktop', 'output.csv')
dt.tocsv(toPath)
```