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...