我想返回一个基于目录列表的列表进行排序。我的问题是,当我为该列表中的每个文件执行循环并试图根据用户输入的扩展名.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