Python內置OS模塊用法詳解
大家好,從今天起早起Python將持續更新由小甜同學從 初學者 的角度學習Python的筆記, 其特 點就是 全文大多由新手易理解的 代碼與註釋及動態演示 。 剛入門的讀者千萬不要錯過!
爲了配合 Python辦公自動化 系列文章,本文帶來的是 偷學Python第二十七天: Python內置OS模塊的詳細用法,其他內容將在近期更新完畢,本文目錄如下
目錄操作
創建目錄
mkdir()
方法用於以數字權限模式當前目錄下創建目錄。默認的模式爲 0777 (八進制),語法格式
如下
os.mkdir(path[, mode])
-
path – 要創建的目錄
-
mode – 要爲目錄設置的權限數字模式
makedirs()
方法用於遞歸創建目錄。可以創建多個目錄,其中exist_ok爲False,表示目錄存在拋出異常。語法格式如下
os.makedirs(path, mode=0o777)
-
path – 需要遞歸創建的目錄。
-
mode – 權限模式。
示例代碼
import os os.mkdir("..\\test_dir") # 創建目錄上一級目錄 # 判斷是否創建成功 print(os.path.isdir("..\\test_dir")) # True os.makedirs("test_dirs\\test_dir") # 遞歸創建目錄 print(os.path.isdir("test_dirs\\test_dir")) # True os.makedirs("Y:/02test/Python/02 進階部分") print(os.path.isdir("Y:/02test/Python/02 進階部分")) # True
刪除目錄
rmdir()
方法用於刪除指定路徑的目錄。僅當這文件夾是空的纔可以, 否則, 拋出OSError。語法格式如下
os.rmdir(path)
path – 要刪除的目錄路徑
removedirs()
方法用於遞歸刪除目錄。注意如果目錄不爲空,會拋出
OSError:[Errno 66] Directory not empty.
語法格式爲
os.removedirs(path)
示例代碼
import os
os.rmdir("..\\test_dir") # 刪除目錄
# 判斷是否刪除成功
print(os.path.isdir("..\\test_dir")) # False 目錄不存在表示以刪除
os.removedirs("test_dirs\\test_dir") # 遞歸刪除目錄
print(os.path.isdir("test_dirs\\test_dir")) # False
os.removedirs("Y:/02test/Python/02 進階部分")
print(os.path.isdir("Y:/02test/Python/02 進階部分")) # False
重命名目錄
rename()
方法用於命名文件或目錄,從 src 到 dst,如果dst是一個存在的目錄, 將拋出OSError。
os.rename(src, dst)
src – 要修改的目錄名 dst – 修改後的目錄名
renames()
方法用於遞歸重命名目錄或文件。類似rename()。
os.renames(old, new)
示例代碼
import os
os.rename("..\\test_dir", "..\\test_dir1") # 創建目錄上一級目錄
print(os.path.isdir("..\\test_dir")) # False
print(os.path.isdir("..\\test_dir1")) # True
os.renames("test_dirs\\test_dir", "test_dirs\\test_dir1") # 遞歸創建目錄
print(os.path.isdir("test_dirs\\test_dir")) # False
print(os.path.isdir("test_dirs\\test_dir1")) # True
os.renames("Y:/02test/Python/02 進階部分", "Y:/02test/Python/02進階部分")
print(os.path.isdir("Y:/02test/Python/02 進階部分")) # False
print(os.path.isdir("Y:/02test/Python/02進階部分")) # True
獲取目錄
listdir()
方法用於返回指定的文件夾包含的文件或文件夾的名字的列表。只支持在 Unix, Windows 下使用。path爲需要列出的目錄路徑
os.listdir(path)
getcwd()
方法用於返回當前工作目錄。
os.getcwd()
chdir()
方法用於改變當前工作目錄到指定的路徑。
os.chdir(path)
示例代碼
import os
dir_list = os.listdir() # 獲取當前文件的路徑,返回一個列表
print(dir_list) # 返回很長很長的列表
getcwd = os.getcwd() # 獲取當前的工作路徑
print(getcwd) # Y:\02test\Python\01 基礎部分
os.chdir("..") # 返回上級目錄
getcwd = os.getcwd() # 獲取當前的工作路徑
print(getcwd) # Y:\02test\Python
遍歷目錄
walk()
方法用於通過在目錄樹中游走輸出在目錄中的文件名,向上或者向下。在Unix,Windows中有效。
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
示例代碼
import os
list_result = os.walk(".", topdown=True, onerror=None, followlinks=False) # 獲取當前目錄 參數可寫可不寫
for root, dirs, files in list_result:
print(root)
print(dirs)
print(files)
文件操作
os.open()
方法用於打開一個文件,並且設置需要的打開選項,模式參數mode參數是可選的,默認爲 0777。
os.open(file, flags[, mode]);
os.write()
方法用於寫入字符串到文件描述符 fd 中. 返回實際寫入的字符串長度。
os.write(fd, str)
os.lseek()
方法用於設置文件描述符 fd 當前位置爲 pos, how 方式修改。
os.lseek(fd, pos, how)
os.read()
方法用於從文件描述符 fd 中讀取最多 n 個字節,返回包含讀取字節的字符串,文件描述符 fd對應文件已達到結尾, 返回一個空字符串。在Unix,Windows中有效
os.read(fd,n)
os.fsync()
方法強制將文件描述符爲fd的文件寫入硬盤。Unix、Windows上可用。
os.fsync(fd)
os.close()
方法用於關閉指定的文件描述符 fd。
os.close(fd)
示例代碼
"""
-*- coding:uft-8 -*-
author: 小甜
time:2020/5/26
"""
import os
file = os.open("text.txt", os.O_CREAT | os.O_RDWR) # 打開文件
os.write(file, b"This is test") # 寫入內容
os.fsync(file) # 將字符串刷新到硬盤上
os.lseek(file, 0, 0) # 將指針置爲0
text = os.read(file, 100) # 讀取文件
print(text) # b'This is test'
os.close(file) # 關閉文件
往期文章
先有收穫,再點在看!