2023年8月31日 星期四

[Python] 檢查目錄是否存在並建立單/多層目錄

Python 2 種取得當前路徑的方法

Python os 模組取得當前路徑的方法

這邊介紹 Python os 模組取得當前路徑的方法,使用 os.getcwd() 可以取得當前目錄的絕對路徑,程式碼如下,

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

import os

print(os.getcwd())


Python pathlib 模組取得當前路徑的方法

這邊介紹 Python pathlib 模組取得當前路徑的方法,使用 pathlib.Path().absolute() 可以取得當前目錄的絕對路徑,程式碼如下:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

import pathlib

print(pathlib.Path().absolute())


建立單層目錄:

目錄不存在,則建立單階層目錄 mkdir(path)
import os

path = 'C:\a'
if not os.path.isdir(path):
  os.mkdir(path)

[推薦用法] 建立多層目錄:

這寫法如該路徑目錄有不存在的階層,則會自動建立
[注意] 當檔案已存在時,就無法建立該目錄,因此還是要加入檢查

import os

path = 'C:\a\b\c\d'
if not os.path.isdir(path):
  os.makedirs(path)


檢查檔案是否存在

import os

filepath = "/etc/motd"

#檢查檔案是否存在
if os.path.isfile(filepath):
print("檔案存在。")
else:
print("檔案不存在。")

#檢查是否為連結檔
if os.path.islink(filepath):
print("連結檔。")
else:
print("非連結檔。")

檢查路徑是否存在

若只是想要查看特定的路徑是否存在,不分檔案或目錄

import os

#要檢查的檔案路徑
filepath = "/etc/motd"

#檢查路徑是否存在
if os.path.exists(filepath):
print("路徑存在。")
else:
print("路徑不存在。")

使用 try 開啟檔案

#要開啟的檔案路徑 filepath = "/etc/not-exists"

#使用 try 開啟 try:
f = open(filepath, 'r')
content = f.read()
f.close()

#檔案不存在的例外處理
except FileNotFoundError:
print("檔案不存在。")

#路徑為目錄的例外處理
except IsADirectoryError:
print("該路徑為目錄")

使用 try 建立目錄

import os

#建立的目錄路徑
folderpath = "/home/gtwang/my_folder"

#使用 try 建立目錄
try:
os.makedirs(folderpath)

#檔案已存在的例外處理
except FileExistsError:
print("檔案已存在。")

沒有留言:

張貼留言