python目录下的文件夹_Python列出当前文件夹下文件的两种方法
使用Python做一些自動化操作時,經常與文件夾和文件打交道,這就依賴于OS模塊了。
OS是Operate System的縮寫,是Python標準庫中一個用于訪問操作系統功能的模塊,OS模塊中的接口可以跨平臺、跨系統訪問。
OS模塊功能很強大,能夠做很多事,舉個栗子吧:
獲取平臺信息,判斷操作系統
對目錄操作
判斷操作
有時候我們需要掃碼某個文件夾下的文件,然后根據擴展名自動載入對應文件,比如批量讀取所有Excel文件,處理Excel里面的數據。下面就介紹兩個方法,如何對文件夾/文件進行掃描。
os.listdir()
[scode]os.listdir()[/scode]方法語法格式如下:
os.listdir(path)
該方法用于返回指定的文件夾path包含的文件或文件夾的名字的列表,在Unix系統下[mark]不會包含 . 和 .. [/mark],并且[mark]不會遍歷[/mark]列出子文件夾下的文件和文件夾。
如果你想列出當前Python文件所在目錄下的所有文件和文件夾,再告訴你一個很有用的方法:[scode]os.getcwd()[/scode]
當然我們還可以對文件夾和文件進行過濾,下面以代碼作為演示:
import os
current_dir = os.getcwd()
for f in os.listdir(current_dir):
# 返回當前絕對路徑,使用os.path.join()方法可以不用考慮路徑分隔符
absolute_path = os.path.join(path, f)
# 如果是文件
if os.path.isfile(absolute_path):
print("這是文件: ", absolute_path)
elif os.path.isdir(absolute_path):
print("這是文件夾:", absolute_path)
使用[scode]os.path.join()[/scode]可以完美解決不同平臺路徑的分隔符問題,再也不怕搞錯路徑啦。
我們知道,Windows系統路徑分隔符是"\\", Linux類系統如Ubuntu的分隔符是"/"。如果你是一個善于動手的好孩子,可以手動添加分隔符,[scode]os.sep[/scode]可以返回當前平臺的路徑分隔符。
os.walk()
如果你搜索Python列出當前文件夾下相關文章,大多數看到的都是介紹os.walk()方法,如果我一開始介紹這個方法,你的小手已經點向了小紅叉。
walk()方法語法格式如下:
os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])
top -- 是你所要遍歷的目錄的地址, 返回的是一個三元組(root,dirs,files)。
root 所指的是當前正在遍歷的這個文件夾的本身的地址
dirs 是一個 list ,內容是該文件夾中所有的目錄的名字(不包括子目錄)
files 同樣是 list , 內容是該文件夾中所有的文件(不包括子目錄)
topdown --可選,為 True,則優先遍歷 top 目錄,否則優先遍歷 top 的子目錄(默認為開啟)。如果 topdown 參數為 True,walk 會遍歷top文件夾,與top 文件夾中每一個子目錄。
onerror -- 可選,需要一個 callable 對象,當 walk 需要異常時,會調用。
followlinks -- 可選,如果為 True,則會遍歷目錄下的快捷方式(linux 下是軟連接 symbolic link )實際所指的目錄(默認關閉),如果為 False,則優先遍歷 top 的子目錄。
敲重點,[scode]os.walk()[/scode]會進行遍歷,不管你的文件目錄藏的有多深,也逃不過它的五指山,這是與[scode]os.list()[/scode]不同點之一。
下面以一個例子演示[scode]os.walk()[/scode]方法
import os
current_path = os.getcwd()
for root, dirs, files in os.walk(current_path, topdown=False):
for name in files:
print(os.path.join(root, name))
for name in dirs:
print(os.path.join(root, name))
總結
以上是生活随笔為你收集整理的python目录下的文件夹_Python列出当前文件夹下文件的两种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 本息还款是什么意思 本息还款有什么含义
- 下一篇: ps选区放大缩小快捷键是什么?(ps放大