[英]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.