簡體   English   中英

python從函數返回空列表

[英]python return empty list from function

很抱歉提出這樣一個基本問題,但我正在嘗試學習python,但不明白為什么這行不通。 當我在目錄上運行該程序時,它會打印並清空列表[]。 我不明白為什么。 有人可以幫忙嗎? Python 3。

import sys, os, 



def getfiles(currdir):
    myfiles = []
    for file in os.listdir(currdir):
         for file in os.listdir(currdir):
            path = os.path.join(currdir,file)
            if not os.path.isdir(path):
                myfiles.append(path)
            else:
                getfiles(path)
    return(myfiles)




if __name__ == '__main__':
    filedirectory = []
    filedirectory = getfiles(sys.argv[1])
    print(filedirectory)

返回[]

感謝您的幫助

如果我了解您想獲取特定目錄中的所有文件名。 這是我的代碼來做到這一點:

Import os
AllFiles = []
AllFiles = os.listdir("your Directory")

listdir()返回特定目錄中的所有文件名。

好吧,至少在您的函數將返回一個空列表的情況下,如果最頂層的目錄僅包含目錄。 這是您的代碼(刪除冗余循環后):

for file in os.listdir(currdir):
    path = os.path.join(currdir,file)
    if not os.path.isdir(path):
        myfiles.append(path)
    else:
        getfiles(path)

如果到達else部分,則您遞歸調用getfiles(path) 不幸的是,您對結果不做任何事情,實際上只是將其丟棄。 您可能是說最后一行是這樣的

        myfiles.extend(getfiles(path))

此外,您可能想簽出os.walk ,因為它似乎在這里嘗試執行的操作。

暫無
暫無

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

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