輸出目錄下的資料夾與檔案

2021-10-08 04:27:46 字數 4803 閱讀 3452

5、遍歷資料夾

python的標準庫中,os模組可以對檔案和路徑進行操作,例如建立、移動、複製檔案和資料夾;檔案的路徑和名稱處理

需要注意的是,os模組中有些指令是windows、mac、linux下通用的,但有些指令只有mac和linux下生效

import os

print

(os.getcwd())

# windows下執行結果:e:\python\pythonstudy\

# linux下執行結果:/media/bobo/python/自動化辦公

'''關於路徑中的斜槓(/)與反斜槓(\)

windows中採用反斜槓(\)作為資料夾之間的分隔符,

mac和linux中採用斜槓(/)作為資料夾之間的分隔符。

反斜槓(\)在python中用於轉義,所以用兩個 \\ '''

語法:os.path.join(path1,path2…)

import os

print

( os.path.join(r"d:\python\test"

,'\hello.py'))

#將hello.py與d:\python\test拼接,返回新路徑

#'d:\pyhton\test\hello.py'

print

(os.path.join(r"d:\python\test"

,'\demo'))

#將demo與d:\python\test拼接,返回新目錄

#'d:\pyhton\test\demo'

print

( os.path.join(r"d:\pyhton\test\hello.py"

,r"d:\pyhton\test\hello2.py"))

'd:\pyhton\test\hello2.py'

# 有絕對路徑,則之前的path將會被刪除

print

( os.path.join(r"d:\pyhton\test"

,r"d:\pyhton\test2"

,r"\test3"))

#'d:\pyhton\test2\test3'

注意:

os.path.join(path1,path2...

),並沒有對資料夾進行操作,相當於將字串拼接

print

(type

( os.path.join(r"d:\pyhton\test"

,r"d:\pyhton\test2"

,r"\test3"))

)#

語法:os.listdir(path)

# 列出當前程式資料夾下的檔案和資料夾

print

(os.listdir())

# ['osoperation.py']

print

(type

(os.listdir())

)# 輸出的內容為列表型別

# 列出指定路徑下的檔案與資料夾

print

(os.listdir(

'/media/bobo/648cebcd8ceb9836/python/'))

# ['.idea', 'pythonstudy', '自動化辦公'] .idea是乙個隱藏資料夾

拓展:

當使用pycharm作為ide時,會自動生成 .idea/資料夾來存放專案的配置資訊。

其中包括版本控制資訊、歷史記錄等等。

說白了, .idea/ 與當前專案能否正常執行無關,

它只是負責對**的歷史變化進行乙個記錄,便於回溯查詢和復原

4.1 判斷是否為資料夾

語法:os.path.isdir(path)

功能:判斷指定路徑是否為目錄,若為目錄返回true,否則返回false

若路徑不存在,返回false

path1 = r"e:\python\python基礎\day08\demo.py"

path2 = r"e:\python\python基礎\day08"

print

(os.path.isfile(path2)

)# true

print

(os.path.isfile(path3)

)# false

4.2 判斷是否為檔案

語法:os.path.isfile(path)

功能:判斷指定路徑是否為檔案,若為檔案返回true,否則返回false

若路徑不存在,返回false

path1 = r"e:\python\python基礎\day08\demo.py"

path2 = r"e:\python\python基礎\day08"

print

(os.path.isfile(path2)

)# true

print

(os.path.isfile(path3)

)# false

拓展:判斷指定目錄下的內容是檔案還是資料夾

for item in os.listdir(path1)

:print

(item,os.path.isdir(os.path.join(path1,

'%s'

%item)))

''' .idea true

pythonstudy true

自動化辦公 true

demo.py false

'''for item2 in os.listdir(path1)

:print

(item2, os.path.isfile(os.path.join(path1,

'%s'

%item2)))

'''.idea false

pythonstudy false

自動化辦公 false

demo.py true

'''

4.3 os.scandir(path)

語法:通過for迴圈可獲取相應的屬性

path1 =

'/media/bobo/648cebcd8ceb9836/python/'

print

(os.scandir(path1)

)# 可迭代物件

for item in os.scandir(path1)

:print

(item.name,item.path,item.is_dir(

),item.is_file())

'''.idea /media/bobo/648cebcd8ceb9836/python/.idea true false

pythonstudy /media/bobo/648cebcd8ceb9836/python/pythonstudy true false

自動化辦公 /media/bobo/648cebcd8ceb9836/python/自動化辦公 true false

demo.py /media/bobo/648cebcd8ceb9836/python/自動化辦公 false true

'''

語法:

os.walk(指定的相對路徑或絕對路徑)

import os

# 相對路徑

# "./" 是指當前資料夾,當前的python檔案為osoperation6.py

for dirpath,dirnames,files in os.walk(

'./'

): print(f'發現資料夾'

) print(f'該資料夾下的檔案有')''

'dirpath 是資料夾路徑

dirnames 是dirpath這個資料夾下的子資料夾列表

files 是dirpath這個資料夾裡的檔案列表 '''

'''輸出結果:

發現資料夾./

['osoperation1.py', 'osoperation2.py', 'osoperation3.py',

'osoperation4.py', 'osoperation5.py', 'osoperation6.py']'''

print(

'*'*100)

# 絕對路徑

for dirpath,dirnames,files in os.walk(

'/media/bobo/python/自動化辦公'

): print(f'發現資料夾'

) print(f'該資料夾下的資料夾有:',f'檔案有')''

'輸出結果:

發現資料夾/media/bobo/python/自動化辦公

該資料夾下的資料夾有:['os模組'] 檔案有

發現資料夾/media/bobo/python/自動化辦公/os模組

該資料夾下的資料夾有:

檔案有['osoperation1.py', 'osoperation2.py',

'osoperation3.py', 'osoperation4.py', 'osoperation5.py', 'osoperation6.py']

'''

遍歷指定目錄下的資料夾與檔案

1。需求 獲取指定目錄下所有資料夾名字 2。實現 public list string findfolders string path directoryinfo dir newdirectoryinfo path var subdir dir.getdirectories 所有子目錄 list s...

刪除目錄(資料夾)以及目錄下的檔案

刪除目錄 資料夾 以及目錄下的檔案 param spath 被刪除目錄的檔案路徑 return 目錄刪除成功返回true,否則返回false public static boolean deletedirectory string spath file dirfile new file spath ...

Apache Tomcat目錄下各個資料夾的作用

1.bin 存放各種不同平台開啟與關閉tomcat的指令碼檔案。2.lib 存tomcat與web應用的jar包。3.conf 存放tomcat的配置檔案。5.work tomcat把由各種jsp生成的servlet檔案存放的地方。6.logs tomcat存放日誌檔案的地方。7.temp tomc...