is_file()和is_dir()用於遍歷目錄時用法注意事項

2020-12-14 站長之家

is_file()和is_dir()用於遍歷目錄時用法注意事項

任務:遍歷一個目錄並區分顯示其中的文件和子目錄文件夾:

1、目錄inc有以下內容:

子目錄 0
子目錄 a
footer.html
header.html
login_function.inc.php
mysqli_connect.php
style.css

2、現在PHP要遍歷inc目錄,並只顯示文件,不顯示目錄0和a,代碼如下:

$dir = $_SERVER['DOCUMENT_ROOT'];
$dir = "$dir/inc/";

$d = opendir($dir);
while(false !==($f=readdir($d)))
{
if(is_file()($f)){
echo " <h2>$f </h2>";
}else{
echo " <h2>是目錄$f </h2>";
}
}
closedir($d);

結果卻只顯示了「footer.html」是文件,其它都變成目錄了:

是目錄.
是目錄..
是目錄a
footer.html
是目錄header.html
是目錄login_function.inc.php
是目錄mysqli_connect.php
是目錄style.css

這是由於不能在is_file和is_dir()中直接使用「$f」,這樣會被PHP當作是根目錄下的該文件,而在我的根目錄下有footer.html這個文件,所以會正確顯示這個文件。其它則不行。代碼改成:

要正確顯示,需要改造代碼:

while(false !== ($f=readdir($d)))
{

if(is_file("$dir/$f")){
echo "<h2>$f</h2>";
}else{
echo "<h2>是目錄$f</h2>";
}
}
closedir($d);

相關焦點

  • File遞歸【遞歸遍歷目錄】
    File文件基本操作:案例需求:給定一個路徑(E:\Hmw),通過遞歸完成遍歷該目錄下所有內容,並把所有文件的絕對路徑輸出在控制臺
  • Python尚學堂高淇|P137-P139OS模塊,文件和目錄的操作,使用walk遍歷os.path模塊
    如果,還需要對文件和 目錄做其他操作,可以使用 os 和 os.path 模塊。刪除多級目錄getcwd()返回當前工作目錄:current work dirchdir(path)把 path 設為當前工作目錄walk()遍歷目錄樹sep當前作業系統所使用的路徑分隔符####測試OS模塊關於文件和目錄的曹祖
  • Python | File & Directory Operations
    os.walk(top, topdown=True) 遍歷迭代目錄。top 是要遍歷的目錄的地址,返回一個三元組 (root, dirs, files) 的生成器。其中 root 是當前正在遍歷的文件夾的地址,dirs 是當前文件夾下所有目錄的列表,files 是當前文件夾下所有文件的列表。
  • golang - 遍歷目錄內容
    簡介在Go語言裡面,提供了path/filepath這個包,可以方便我們遍歷目錄。調用時path參數會包含Walk的root參數作為前綴;就是說,如果Walk函數的root為"dir",該目錄下有文件"a",將會使用"dir/a"調用walkFn參數。walkFn參數被調用時的info參數是path指定的地址(文件/目錄)的文件信息,類型為os.FileInfo。
  • Python 文件與目錄操作方法總結
    運行上面的代碼會產生以下結果:sub_dir_cfile1.pysub_dir_bfile3.txtfile2.csvsub_dir使用pathlib.Path()或os.scandir()而不是os.listdir()是獲取目錄列表的首選方法,尤其是在處理需要文件類型和文件屬性信息的代碼時。
  • python os.listdir()亂碼解決方案
    有些人會使用os.remove來進行文件的清楚,從而導致一些錯誤的出現,可以說這是對於os.remove的用法還沒有熟練掌握。下面我們就os.remove的詳細用法及使用注意分別介紹。計算機一般來說是需要定期的清理,系統的內存不能無限延伸,同時有一些不需要的文件也可以得以清除掉。
  • 用Python遍歷文件夾下的所有文件並進行數據處理(Pathlib簡介)
    /Python_file_processing/files"先用os的方法,這裡我們使用os.walk()來遍歷文件名:首先設置文件目錄:讓我們看一下通過pathlib的方法是如何遍歷的:# 所有以xlsx結尾的文件for file in p.rglob('*.xlsx'): print(file)
  • (實用篇)php無限遍歷目錄
    以下是文章分享1群,由於群人數已超過300,不能掃碼進群,這個任務呢,就由小篇來拉你們進群了,掃描下面二維碼,加小篇好友~使用的函數有:isset()判斷某個變量是否定義chdir() 將當前目錄改變為指定的目錄。opendir() 打開目錄。
  • python筆記4-遍歷文件夾目錄os.walk()
    並且找出某個後綴的所有文件一、walk功能簡介1.os.walk() 方法用於通過在目錄樹種遊走輸出在目錄中的文件名,向上或者向下。2.walk()方法語法格式如下:os.walk(top,topdown=True,onerror=None, followlinks=False)- top 根目錄下的每一個文件夾(包含它自己), 產生3-元組 (dirpath, dirnames, filenames)【文件夾路徑, 文件夾名字, 文件名】。
  • python批量遍歷文件,並清除文件中的幹擾字符
    具體的代碼如下:import ospath ="D:\\tmp\\abc\\"dirs = os.listdir(path)# -批量替換文件內容---for file in dirs:with open(os.path.join(path,file), 'r+') as f:s = f.read() s = s.replace("幹擾字符", "").replace
  • 一文看懂Python對文件和文件夾的操作: 含os, shutil和glob模塊.Python學習面試必讀.
    在利用Python或Django從事Web開發時除了必須要了解Python面向對象的編程思想,還必須熟練掌握對文件夾和文件的操作。小編我精心準備了個小結,教你如何利用python進行基本的文件和文件夾操作,並重點介紹了如何使用os, shutil和glob模塊進行常見的文件和文件夾操作,如遍歷,刪除文件和查找文件。
  • Python3菜鳥教程:如何在Python中刪除文件和目錄
    本教程說明了如何使用os,pathlib和shutil模塊中的函數刪除文件和目錄。刪除文件在Python中,您可以使用os.remove(),os.unlink(),(),pathlib.Path.unlink()刪除單個文件。os模塊提供了一種與作業系統交互的可攜式方法。該模塊可用於Python 2和3。
  • 從菜鳥到高手,CMD命令行查看目錄中的文件:dir
    雖然這麼多參數讓人發懵,但是我們常用的並不多,常用的最多的就是 /A 和 /S 兩個參數,其他常用的會有/B /O /T /Pdir ---不附帶任何參數,列出當前路徑下的目錄和文件(不包含子目錄的文件)dir directory ---列出指定目錄下的子目錄和文件
  • Dockerfile官方文檔詳細介紹
    閱讀完此頁面後,請參考Dockerfile最佳實踐以獲取有關技巧的指南。用法該docker build命令根據Dockerfile和上下文構建圖像。構建的上下文是指定位置PATH或的文件集URL。這PATH是本地文件系統上的目錄。該URL是一個Git倉庫的位置。
  • Python常用模塊os和shutil學習
    常用函數1.複製文件shutil.copy(要複製的文件,需要複製的文件位置)copy2() 複製文件,會保留原有文件的信息(操作時間和權限等)#將文件text01.txt複製到文件夾Bimport shutilfile01='/Users/tongtony/測試案例/文件夾A/text01.txt'dirb='/Users/tongtony
  • (進階篇)php文件夾與文件目錄操作函數介紹
    realpath() 失敗時返回 FALSE,比如說文件不存在的話。在 BSD 系統上,如果僅僅是 path 不存在的話,PHP 並不會像其它系統那樣返回 FALSE。bool is_dir ( string filename )如果文件名存在並且為目錄則返回 TRUE。