我想返回一個基於目錄列表的列表進行排序。我的問題是,當我爲該列表中的每個文件執行循環並試圖根據用戶輸入的擴展名.endswith()
刪除它似乎不正確更新列表(但它確實打印出「刪除文件...」)。難道我做錯了什麼?我應該更新或返回列表(files
)的地方我不?>python不刪除目錄列表中的列表項
另外,如果我設置dirlist變量files
爲files=file_list.sort()
返回沒有,我必須設置files=sorted(file_list)
......這是爲什麼?
import os
class Sort:
dirchoice = os.getcwd()
file_list = list(os.listdir(dirchoice))
files=sorted(file_list)
def file_extension(self):
if input("Would you like to specify a particular file extension [Y/N]").lower() == ('y' or 'yes'):
ext=input("filetype>")
ext = str(ext)
for file in self.files:
print(file)
if not file.endswith(ext):
self.files.remove(file)
print("removing " +file+ " from list...")
return self.files
print("File Contents: ")
pprint.pprint(self.files)
return self.file_extension()
問題尋求幫助調試(**「?爲什麼不是這個代碼工作」 **)必須包括所期望的行爲,*一個特定的問題或錯誤*和*在問題本身**中重現它的最短代碼*。沒有**明確問題陳述**的問題對其他讀者沒有用處。請參閱:[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 – MattDMo
你有沒有考慮過使用調試器?在程序中添加斷點並找出哪一行導致了錯誤的主題。 – Poriferous
對不起,第一篇文章,是更好的?我甚至不能在IDLE上做這項工作,它肯定是丟失了循環和dirlist列表的東西 – conma293