真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python目錄操作函數(shù) python獲取當(dāng)前目錄

python 當(dāng)文件目錄不存在時(shí),如何自動(dòng)創(chuàng)建

Python對(duì)文件的操作算是方便的,只 需要調(diào)用os模塊,使用相關(guān)函數(shù)即可實(shí)現(xiàn)目錄的創(chuàng)建。主要涉及三個(gè)函數(shù):

創(chuàng)新互聯(lián)自2013年創(chuàng)立以來(lái),是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元伊川做網(wǎng)站,已為上家服務(wù),為伊川各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

1、os.path.exists(path)?判斷一個(gè)目錄是否存在

2、os.makedirs(path)?多層創(chuàng)建目錄

3、os.mkdir(path)?創(chuàng)建目錄

def?mkdir(path):

#?引入模塊

import?os

#?去除首位空格

path=path.strip()

#?去除尾部?\?符號(hào)

path=path.rstrip("\\")

#?判斷路徑是否存在

#?存在?????True

#?不存在???False

isExists=os.path.exists(path)

#?判斷結(jié)果

if?not?isExists:

#?如果不存在則創(chuàng)建目錄

 #?創(chuàng)建目錄操作函數(shù)????????

 os.makedirs(path)??

print(path+'?創(chuàng)建成功')

return?True

else:

#?如果目錄存在則不創(chuàng)建,并提示目錄已存在

print(path+'?目錄已存在')

return?False

#?定義要?jiǎng)?chuàng)建的目錄

mkpath="d:\\qttc\\web\\"

#?調(diào)用函數(shù)

mkdir(mkpath)

注意:os.mkdir(path)函數(shù)和多層創(chuàng)建目錄函數(shù)os.makedirs(path)的區(qū)別。主要是當(dāng)父目錄不存在的時(shí)候os.mkdir(path)不會(huì)創(chuàng)建,而os.makedirs(path)會(huì)創(chuàng)建父目錄。

Python中os模塊創(chuàng)建目錄的函數(shù)有哪些呢?

'os.mkdir():創(chuàng)建一個(gè)新目錄。

'os.makedirs():創(chuàng)建一個(gè)新目錄,如果該目錄的父目錄不存在,則也會(huì)一并創(chuàng)建。

下面是一些示例代碼,展示了如何使用這兩個(gè)函數(shù)來(lái)創(chuàng)建目錄:

# 導(dǎo)入 os 模塊

import os

# 使用 os.mkdir() 創(chuàng)建一個(gè)新目錄

os.mkdir("newdir")

# 使用 os.makedirs() 創(chuàng)建一個(gè)新目錄,如果該目錄的父目錄不存在,則也會(huì)一并創(chuàng)建

os.makedirs("path/to/newdir")

在上面的代碼中,第二行導(dǎo)入了 'os模塊。然后,第四行使用os.mkdir()函數(shù)創(chuàng)建了一個(gè)名為newdir的新目錄。第六行使用os.makedirs()函數(shù)創(chuàng)建了一個(gè)新目錄,并指定了其完整路徑。

注意,如果在執(zhí)行這段代碼時(shí),當(dāng)前工作目錄下已經(jīng)存在一個(gè)名為 'newdir或path/to/newdir的目錄,則創(chuàng)建目錄操作將會(huì)失敗,會(huì)拋出一個(gè)FileExistsError異常。因此,在實(shí)際應(yīng)用中,需要先判斷該目錄是否已經(jīng)存在,然后再?zèng)Q定是否執(zhí)行創(chuàng)建目錄的操作

例如,可以使用 'os.path.exists()函數(shù)

Python其實(shí)很簡(jiǎn)單 第十六章 目錄管理

為實(shí)現(xiàn)“按名存取”,必須建立文件名與輔存空間中物理地址的對(duì)應(yīng)關(guān)系,體現(xiàn)這種對(duì)應(yīng)關(guān)系的數(shù)據(jù)結(jié)構(gòu)稱(chēng)為文件目錄。文件目錄表目至少要包含文件名、文件的類(lèi)型、文件的長(zhǎng)度、訪問(wèn)權(quán)限、建立時(shí)間、訪問(wèn)時(shí)間和文件存儲(chǔ)地址等內(nèi)容。通過(guò)前面一章的介紹,我們已經(jīng)知道在文件信息中已經(jīng)包含了文件名、文件類(lèi)型訪問(wèn)權(quán)限等信息,而存儲(chǔ)地址的信息則包含在目錄信息中。

16.1路徑

路徑通常用一個(gè)字符串來(lái)表示,可以按照路徑信息定位到一個(gè)目錄或文件。如:“C:UsersAdministratorPictures1.jpg”這個(gè)信息可以非常方便的找到這個(gè)圖片文件,“C:UsersAdministratorPictures”這個(gè)信息可以幫助我們找到更多的圖片文件。

這里所說(shuō)的“路徑”和上網(wǎng)時(shí)碰到的“地址”含義比較相似,互聯(lián)網(wǎng)就相當(dāng)于將個(gè)人電腦可以訪問(wèn)的范圍擴(kuò)大了,互聯(lián)網(wǎng)中的地址也是對(duì)應(yīng)某一個(gè)存儲(chǔ)空間的路徑,按照地址可以訪問(wèn)互聯(lián)網(wǎng)上的信息,就如同按照路徑可以找到計(jì)算機(jī)中的文件一樣。

在Python中,可以導(dǎo)入 os模塊 來(lái)進(jìn)行目錄操作。

1、獲取當(dāng)前工作目錄getcwd()函數(shù)

例:

import os

print(os.getcwd())

運(yùn)行結(jié)果:

C:UsersAdministratorAppDataLocalProgramsPythonPython38

這個(gè)路徑是當(dāng)前Python IDLE所在的地址。

2、獲取文件的絕對(duì)路徑abspath()函數(shù)

abspath()函數(shù)是os模塊的子模塊path提供的一個(gè)函數(shù)。用法舉例如下:

import os

print(os.path.abspath(r'test.txt'))

運(yùn)行結(jié)果:

C:UsersAdministratorAppDataLocalProgramsPythonPython38 est.txt

16.2 目錄操作類(lèi)函數(shù)

1、判斷目錄是否存在exists()函數(shù)

exists()函數(shù)是os模塊的子模塊path中的函數(shù)。使用方法舉例如下:

import os

print(os.path.exists(r'C:UsersAdministratorPictures1.jpeg'))

輸出結(jié)果:

True

2、創(chuàng)建目錄mkdir()函數(shù)和makedirs()函數(shù)

mkdir()函數(shù)和makedirs()函數(shù)都是由os模塊提供的,下面舉例說(shuō)明用法和區(qū)別。

例1:

import os

path='d:test'

if not os.path.exists(path):

os.makedirs(path)

print('該文件目錄創(chuàng)建成功!')

如果目錄d: est已存在,則不再創(chuàng)建;若不存在,則創(chuàng)建。

例2:

import os

path='d:testtest1test11'

if not os.path.exists(path):

os.makedirs(path)

print('該文件目錄創(chuàng)建成功!')

雖然目錄d: est已存在,但可以在其下繼續(xù)創(chuàng)建子目錄。上面的代碼可以成功地創(chuàng)建d: est est1 est11目錄。

mkdir()函數(shù)和makedirs()函數(shù)用法基本一樣,不同之處在于mkdir()函數(shù)只能能創(chuàng)建一級(jí)目錄。

3、刪除目錄函數(shù)rmdir()函數(shù)

rmdir()函數(shù)是由os模塊提供的。

例如:通過(guò)上面的例子已經(jīng)建立了d: est est1 est11目錄,現(xiàn)在去刪除子目錄test11(此子目錄為空目錄),代碼如下:

import os

os.rmdir('d:testtest1test11')

如果要?jiǎng)h除的目錄非空(其下還包含有文件或文件夾),則不能刪除,并且出現(xiàn)Windows文件操作錯(cuò)誤的提示(Python是調(diào)用操作系統(tǒng)命令完成文件和目錄操作的)。譬如d: est目錄下含有有子目錄,則不能對(duì)其進(jìn)行如下刪除操作。

import os

os.rmdir('d:test')

此時(shí),會(huì)出現(xiàn)如下錯(cuò)誤提示:

Traceback (most recent call last):

File "C:/Users/zym/AppData/Local/Programs/Python/Python39/4.py", line 10, in

os.rmdir('d:test')

OSError: [WinError 145] 目錄不是空的。: 'd:test'

4、刪除非空目錄函數(shù)rmtree()函數(shù)

rmtree()函數(shù)是由Python內(nèi)置的標(biāo)準(zhǔn)模塊shutil提供的,可以刪除目錄及目錄下的文件和子目錄。如刪除d: est目錄及其下的子目錄和文件,可用如下代碼:

import shutil

shutil.rmtree('d:test')

5、遍歷目錄walk()函數(shù)

walk()函數(shù)是由os模塊提供的。

語(yǔ)法格式:

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

其中,top是所要遍歷的目錄的地址;topdown為可選參數(shù),為 True時(shí)自上而下遍歷 目錄,為False時(shí)自下而上遍歷目錄,默認(rèn)值為T(mén)rue;onerror為可選參數(shù),用于指定異常處理方式,默認(rèn)為忽略;followlinks為可選參數(shù),如果為 True,則會(huì)遍歷目錄下的快捷方式(linux 下是軟連接 symbolic link )實(shí)際所指的目錄(默認(rèn)關(guān)閉),如果為 False,則優(yōu)先遍歷 top 的子目錄。

該函數(shù)的返回值為一個(gè)三元組(root,dirs,files)。root 所指的是當(dāng)前正在遍歷的這個(gè)文件夾的本身的地址;dirs 是一個(gè) list ,內(nèi)容是該文件夾中所有的目錄的名字(不包括子目錄);files 同樣是 list , 內(nèi)容是該文件夾中所有的文件(不包括子目錄)。

例:遍歷d: est目錄及其子目錄下的所有子目錄和文件:

d: est目錄及其下的子目錄和文件

import os

path='d:test'

tups=os.walk(path) # 函數(shù)walk()的返回值為三元組

for root,dirs,files in tups: # 遍歷這個(gè)三元組

for name in dirs: #遍歷存放目錄值的元組

print('dir:',os.path.join(root,name))

for name in files: #遍歷存放文件名值的元組

print('file:',os.path.join(root,name))

運(yùn)行結(jié)果如下:

dir: d: est est1

dir: d: est est1 est11

dir: d: est est1新建文件夾

file: d: est est1新建文本文檔.txt

file: d: est est1 est11新建文本文檔.txt

Python中os模塊提供的與目錄相關(guān)的函數(shù)有哪些呢?

答案正確。以下是這些函數(shù)的具體說(shuō)明:

os.getcwd():獲取當(dāng)前工作目錄的路徑名。

os.listdir(path):列出指定目錄下的所有文件和子目錄(不包含 . 和 .. 目錄)。

os.mkdir(path[, mode]):創(chuàng)建一個(gè)新目錄,其中 path 參數(shù)是要?jiǎng)?chuàng)建的目錄路徑名,mode 參數(shù)是可選的,指定目錄權(quán)限,默認(rèn)為 0777。

os.makedirs(path1/path2…[, mode]):遞歸創(chuàng)建多層目錄結(jié)構(gòu),其中 path1/path2… 參數(shù)是要?jiǎng)?chuàng)建的目錄路徑名,在這個(gè)路徑下逐層創(chuàng)建目錄,并且可以遞歸創(chuàng)建多層目錄,mode 參數(shù)是可選的,指定目錄權(quán)限,默認(rèn)為 0777。

os.rmdir(path):刪除指定的目錄,前提是這個(gè)目錄必須為空,否則無(wú)法刪除。

os.removedirs(path1/path2…):遞歸刪除指定的目錄及其中的所有空目錄,其中 path1/path2… 參數(shù)是要?jiǎng)h除的目錄路徑名,在遞歸刪除過(guò)程中,若某個(gè)目錄不為空,則不會(huì)被刪除。

os.chdir(path):改變當(dāng)前工作目錄,其中 path 參數(shù)表示要切換的目錄路徑名。

os.walk(top[, topdown[, onerror]]):以目錄樹(shù)形式遍歷指定目錄下的所有文件和子目錄,并返回一個(gè)三元組 (dirpath, dirnames, filenames),其中 dirpath 表示當(dāng)前目錄路徑,dirnames 是當(dāng)前目錄下的所有子目錄名,filenames 是當(dāng)前目錄下的所有非目錄文件名。當(dāng) topdown 參數(shù)為 True 時(shí),表示先遍歷一級(jí)目錄,再判斷是否需要遞歸遍歷其它子目錄,默認(rèn)值為 True;當(dāng) onerror 參數(shù)不為 None 時(shí),表示如果在遍歷目錄樹(shù)時(shí)遇到錯(cuò)誤是否拋出異常(否則該錯(cuò)誤直接被忽略),onerror 參數(shù)需要傳入一個(gè)函數(shù),接受三個(gè)參數(shù),分別是出現(xiàn)錯(cuò)誤的根目錄、錯(cuò)誤對(duì)象 Exception 和 traceback 對(duì)象。

以上是 os 模塊中的一些常用目錄相關(guān)函數(shù)。需要注意的是,對(duì)于一些有進(jìn)行文件和目錄操作的函數(shù),一定要注意操作的權(quán)限和路徑的正確性,避免在操作時(shí)發(fā)生不必要的錯(cuò)誤。


新聞名稱(chēng):python目錄操作函數(shù) python獲取當(dāng)前目錄
文章出自:http://weahome.cn/article/dojisps.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部