日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

6.4.1 标准库 os、os.path 与 shutil 简介

發(fā)布時(shí)間:2023/12/18 编程问答 31 如意码农
生活随笔 收集整理的這篇文章主要介紹了 6.4.1 标准库 os、os.path 与 shutil 简介 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  os模塊除了提供使用操作系統(tǒng)功能和訪問文件系統(tǒng)的簡便方法之外,還提供了大量文件與文件夾操作的方法,如下表所示。

方法 功能說明
access(path,mode) 按照 mode 指定的權(quán)限訪問文件
chdir(path) 把 path 設(shè)置為當(dāng)前工作目錄
chmod(path,mode,*,dir_fd=None,follow_symlinks=True) 改變文件的訪問權(quán)限
extsep 當(dāng)前操作系統(tǒng)所使用的文件擴(kuò)展名分隔符
fstat(path) 返回打開的文件的所有屬性
get_exec_path() 返回可執(zhí)行文件的搜索路徑
getcwd() 返回當(dāng)前的工作目錄
listdir(path) 返回path目錄下的文件和目錄列表
mkdir(path[,mode=0777]) 創(chuàng)建目錄
makedirs(path1/path2/...,mode=551) 創(chuàng)建多級目錄
open(path,flags,mode=0o777,*,dir_fd=None) 按照mode指定的權(quán)限打開文件,默認(rèn)權(quán)限為可讀、可寫、可執(zhí)行
rmdir(path) 刪除目錄,目錄中不能有文件或子文件夾
remove(path) 刪除指定的文件
removedirs(path1/path2...) 刪除多級目錄,目錄中不能有文件
rename(src,dst) 重命名文件或目錄,可實(shí)現(xiàn)文件的移動(dòng)
scandir(path='.') 返回包含指定文件夾中所有DirEntry對象的迭代對象
sep 當(dāng)前操作系統(tǒng)所使用的路徑分隔符
startfile(filepath[,operation]) 使用關(guān)聯(lián)的應(yīng)用程序打開指定文件或啟動(dòng)指定應(yīng)用程序
stat(path) 返回文件的所有屬性
truncate(path,length) 將文件截?cái)啵槐A糁付ǖ拈L度
walk(top,topdown=True,onerror=None) 遍歷目錄樹,該方法返回一個(gè)元組,包含3個(gè)元素:所有路徑名、所有目錄列表與文件列表
write(fd,data) 將 bytes 對象 data 寫入文件fd

  os.path模塊提供了大量用于路徑判斷、切分、連接以及文件夾遍歷的方法,如下表所示。

方法 功能說明
abspath(path) 返回給定路徑的絕對路徑
basename(path) 返回指定路徑的最后一個(gè)組成部分
commonpath(paths) 返回戈丁的多個(gè)路徑的最長公共路徑
commonprefix(paths) 返回給定的多個(gè)路徑的最長公共前綴
dirname(p) 返回給定路徑的文件夾部分
exists(path) 判斷文件是否存在
getatime(filename) 返回文件的最后訪問時(shí)間
getctime(filename) 返回文件的最后創(chuàng)建時(shí)間
getmtime(filename) 返回文件的最后修改時(shí)間
getsize(filename) 返回文件的大小
isabs(path) 判斷path是否為絕對路徑
isdir(path) 判斷path是否為文件夾
isfile(path) 判斷path是否為文件
join(path,* paths) 連接兩個(gè)或多個(gè)path
split(path) 對絕對路徑進(jìn)行分割,以列表形式返回
splitest(path) 從路徑中分隔文件的擴(kuò)展名
splitdrive(path) 從路徑中分隔出驅(qū)動(dòng)器的名稱

  shutil模塊也提供了大量的方法支持文件和文件夾的操作,常用方法如下表所示。

方法 功能說明
copyfile(src,dst) 復(fù)制文件
copytree(src,dst) 遞歸復(fù)制文件夾
disk_usage(path) 查看磁盤使用情況
move(src,dst) 移動(dòng)文件或遞歸移動(dòng)文件夾
rmtree(path) 遞歸刪除文件夾
make_archive(base_name,format,root_dir=None,base_dir=None) 創(chuàng)建tar或zip格式的壓縮文件
unpack_archive(filename,extract_dir = None,format = None) 解壓縮文件

  下面通過幾個(gè)示例來演示os、os.path 以及 shutil 模塊的基本用法。

 import os
import os.path as op print(op.basename(r'C:\windows\notepad.exe')) #獲取路徑的最后一個(gè)組成部分
#notepad.exe print(op.exists(r'test1.txt')) #測試文件是否存在
#notepad.exe #----------------------------------------------
#os.rename(r'C:\test1.txt',r'C:\test2.txt') #源文件不存在,重命名失敗
'''
Traceback (most recent call last):
File "C:/Users/dddd/AppData/Local/Programs/Python/Python35/test1.py", line 10, in <module>
os.rename(r'C:\test1.txt',r'C:\test2.txt') #源文件不存在,重命名失敗
FileNotFoundError: [WinError 2] 系統(tǒng)找不到指定的文件。: 'C:\\test1.txt' -> 'C:\\test2.txt'
'''
#---------------------------------------------- #os.rename(r'C:\Users\dddd\AppData\Local\Programs\Python\Python35\infomation.txt','C:\\infomation.txt') #os.rename() 可實(shí)現(xiàn)文件的改名和移動(dòng)
#這里區(qū)分是移動(dòng)還是改名就看是不是在同一個(gè)路徑下,是則為改名,否則為移動(dòng) print(op.exists('C:\\infomation.txt'))
#True #返回路徑的文件夾名
path = r'D:\mypython_exp\new_test.txt'
print(os.path.dirname(path)) #D:\mypython_exp #返回文件名
print(os.path.basename(path)) #new_test.txt #切分文件路徑和文件名
print(os.path.split(path)) #('D:\\mypython_exp', 'new_test.txt') print(os.path.splitdrive(path)) #('D:', '\\mypython_exp\\new_test.txt') #切分文件拓展名
print(os.path.splitext(path)) #('D:\\mypython_exp\\new_test', '.txt') #獲取當(dāng)前工作目錄下的 拓展名為.py的文件
print([fname for fname in os.listdir(os.getcwd()) if os.path.isfile(fname) and fname.endswith('.py')])
#['BinaryTree.py', 'demo.py', 'demo_new.py', 'MyArray.py', 'myQueue.py', 'simNumpyArray.py', 'Stack.py', 'test.py', 'test1.py'] #返回當(dāng)前工作目錄
print(os.getcwd()) #C:\Users\...\Programs\Python\Python35 #在當(dāng)前工作目錄下創(chuàng)建子目錄
#print(os.mkdir(os.getcwd() + r'\pyfile')) #把當(dāng)前工作目錄切換到pyfile目錄下
os.chdir(os.getcwd() + r'\pyfile') #返回\pyfile目錄下的文件
print(os.listdir(os.getcwd())) #因?yàn)檫@個(gè)目錄剛創(chuàng)建,還沒有文件,所以返回空列表 [] #當(dāng)前目錄還可以用 . 表示 上級目錄可以用 .. 表示,,這是相對路徑
print(os.listdir('.')) #[]
print(os.listdir('..')) #['.idea', 'BinaryTree.py', ...,] #在 pyfile目錄下再創(chuàng)建一個(gè)目錄
#os.mkdir('aa') #刪除剛才創(chuàng)建的目錄
#os.rmdir('aa') print(os.path.commonpath([r'C:\windows\notepad.exe',r'C:\windows\system'])) #C:\windows
print(os.path.commonprefix([r'a\b\c\d',r'a\b\c\e'])) #a\b\c\
 import shutil

 #shutil.copyfile(r'C:\infomation.txt','C:\\Users\\dddd\\AppData\\Local\\Programs\\Python\\Python35\infomation.txt')  #OK了,復(fù)制過來了

 #將某個(gè)文件夾及該文件夾中所有文件壓縮至 當(dāng)前目錄下的 a.zip
#shutil.make_archive('.\\a','zip','.','a') #OK了,壓縮成功了。 #將剛才的壓縮文件解壓至 .\aa文件夾下
shutil.unpack_archive('.\a.zip','.\aa')

總結(jié)

以上是生活随笔為你收集整理的6.4.1 标准库 os、os.path 与 shutil 简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。