簡體   English   中英

檢查文件是Python 2.7.11中的目錄還是常規文件

[英]Check if a file is a directory or a regular file in Python 2.7.11

我已編寫此代碼來檢查特定目錄中的某些文件是否是其他文件或目錄。

我的文件結構就像:

C:\Users\Desktop\pythonprograms
|-temp1
|-temp2
|-sample.py

import os

filepath = os.getcwd()
backslash = "\\"
allfiles = os.listdir(filepath)

for indexval in range(filelist):
   print "File  ", indexval, allfiles[indexval], type(allfiles[indexval])   
checkfileisdir = filepath + backslash
dirsavailable = [checkfileisdir + indexval for indexval in allfiles]
for checkfile in dirsavailable:
    print os.path.isdir(checkfileisdir)

上面的代碼為目錄和文件返回True。

此外,以下代碼可解決問題。 我在尋找解釋而不是代碼片段。

for indexval in range(filelist):
   print "File  ", indexval, allfiles[indexval], type(allfiles[indexval])           
   checkfileisdir = filepath + backslash + allfiles[indexval]
   print os.path.isdir(checkfileisdir),

我無法解釋原因。 有人可以幫我學習嗎?

提前致謝。

您試圖為您的任務使用不正確的功能。

閱讀文檔

os.listdir

返回一個列表,其中包含由path給出的目錄中條目的名稱。 該列表是任意順序的。 它不包括特殊條目“。” 和“ ..”,即使它們存在於目錄中。

目錄中的條目是任何類型的條目(文件,目錄等)

您需要使用此功能:

os.walk(top,topdown = True,onerror = None,followlinks = False)

通過自上而下或自下而上移動目錄樹來生成文件名。 對於以目錄頂部(包括頂部本身)為根的樹中的每個目錄,它都會生成一個三元組(目錄路徑,目錄名,文件名)。

是一個很好的用法示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM