python 關於資料夾的一些操作

2021-10-11 11:43:18 字數 4847 閱讀 1633

3 判斷某一資料夾是否為空?

4 查詢某一目錄下的空資料夾

5 刪除檔案或資料夾

6 返回(上級)目錄

import os

file_or_dir =

'c:\\users\\54719\\desktop'

# 檔案路徑

if os.path.exists(file_or_dir)

:# 如果檔案存在

print

("資料夾或檔案存在"

)else

:print

("資料夾或檔案不存在,建立了乙個資料夾"

) os.makedirs(file_or_dir)

os.walk(top, topdown=true, οnerrοr=none, followlinks=false),通過「自上而下」或「自下而上」來遍歷目錄,生成目錄樹中的資料夾名和檔名。結果是按照廣度優先返回的,有三個結果,分布是資料夾路徑、資料夾名稱和檔名。

import os

# 遍歷資料夾

defwalkfile

(file):

#os.walk(file)返回的是乙個迭代器,通過for迴圈來訪問每一次迭代得到的結果

for root, dirs, files in os.walk(

file):

# root 表示當前正在訪問的資料夾路徑

# dirs 表示該資料夾下的子目錄名list

# files 表示該資料夾下的檔案list 注意返回的是檔名

# 遍歷檔案

for f in files:

print

(os.path.join(root, f)

)# 遍歷所有的資料夾

for d in dirs:

print

(os.path.join(root, d)

)def

main()

: walkfile(

"f:/ostest/"

)if __name__ ==

'__main__'

: main(

)

os.scandir(path),返回path目錄樹中對應的os.direntry物件的迭代器(資料夾或檔案),不包含子資料夾裡的資料夾和檔案,但執行效率比os.walk高,python官方推薦使用os.scandir來遍歷目錄樹。

path =

"./"

dirs =

files =

for item in os.scandir(path)

:if item.is_dir():

elif item.is_file():

print

(, dirs)

print

(, files)

out:

'./.spyproject'

,'./2020-12-05-23-19-20'

,'./2020-12-06-17-05-49'

,'./2020-12-06-17-31-40'

,'./data'

,'./helpers'

]'./draft.py'

,'./load_and_split.py'

,'./main.py'

,'./main_cifar.py'

,'./__init__.py'

]當然,也可以通過 item.name 得到檔案或資料夾的名字。

os.listdir(path),返回path目錄下的資料夾和檔案,但不包含子資料夾裡的資料夾和檔案,並按照目錄樹結構的排序輸出結果,即深度優先

if

not os.listdir(

dir)

:print

(dir

+"該資料夾為空"

)

dir

="c:\\users\\54719\\desktop\\a metric for mi\\project\\"

dir_iter = os.walk(

dir)

root, dirs, files =

next

(dir_iter)

fordir

in dirs:

ifnot os.listdir(root +

dir)

:print

(root +

dir+

"是乙個空資料夾"

)

out:

c:\users\54719\desktop\a metric for mi\project\2020-12

-05-17

-40-57是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-05-18

-12-55是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-05-18

-14-09是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-05-18

-14-54是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-05-22

-51-23是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-05-22

-51-42是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-05-22

-52-18是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-05-22

-59-11是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-05-23

-07-52是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-05-23

-11-05是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-05-23

-16-02是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-05-23

-18-04是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-05-23

-18-39是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-06-16

-51-31是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-06-16

-52-39是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-06-16

-53-08是乙個空資料夾

c:\users\54719\desktop\a metric for mi\project\2020-12

-06-16

-53-51是乙個空資料夾

需要用到不同的函式,其中,刪除檔案用:

import os

os.remove(path)

刪除資料夾用:

os.rmdir(path)
注意:os.rmdir()只能刪除空資料夾,即要先把資料夾內的檔案用os.remove()刪光,才能刪除資料夾。

import os

print

'***獲取當前目錄***'

print

(os.getcwd())

print

(os.path.abspath(os.path.dirname(__file__)))

print

'***獲取上級目錄***'

print

(os.path.abspath(os.path.dirname(os.path.dirname(__file__)))

)print

(os.path.abspath(os.path.dirname(os.getcwd())

))print

(os.path.abspath(os.path.join(os.getcwd(),

".."))

)print

'***獲取上上級目錄***'

print

(os.path.abspath(os.path.join(os.getcwd(),

"../.."))

)

參考:刪除檔案或資料夾

python對資料夾的一些操作

view source print?01defcopyfolderos sfolder,tfolder 02sourcepath sfolder 03destpath tfolder 04forroot,dirs,filesinos.walk sourcepath 05 06 figure out ...

python對檔案,資料夾的一些操作

python中對檔案 資料夾的操作需要涉及到os模組和shutil模組。建立檔案 1 os.mknod test.txt 建立空檔案 2 open test.txt w 直接開啟乙個檔案,如果檔案不存在則建立檔案 建立目錄 os.mkdir file 建立目錄 複製檔案 shutil.copyfil...

python對檔案及資料夾的一些操作

python中對檔案 資料夾的操作需要涉及到os模組和shutil模組。建立檔案 1 os.mknod test.txt 建立空檔案 2 open test.txt w 直接開啟乙個檔案,如果檔案不存在則建立檔案 建立目錄 os.mkdir file 建立目錄 複製檔案 shutil.copyfil...