【发布时间】:2019-12-11 11:48:44
【问题描述】:
我正在遍历一些文件夹以读取该列表中的所有对象,以便稍后移动未拒绝的对象。由于文件夹和文件的数量可能会有所不同,基本上我设法创建了一个字典,其中每个文件夹都是一个键,项目是项目。在虚拟情况下,我有: 遍历文件夹来源的数量(已知但可能会有所不同)
sourcefolder = (r"C:\User\Desktop\Test")
subfolders = 3
for i in range(subfolders):
Lst_All["allfiles" + str(i)] = os.listdir(sourcefolder[i])
这会产生下面的字典:
Lst_All = {
allfiles0: ('A.1.txt', 'A.txt', 'rejected.txt')
allfiles1: ('B.txt')
allfiles2: ('C.txt')}
我的问题是删除被拒绝的文件,这样我就可以只使用有效文件进行shutil.move()。
到目前为止,我得到了:
for k, v in lst_All.items():
for i in v:
if i == "rejected.txt":
del lst_All[i]
但它返回一个错误 KeyError: 'rejected.txt'。有什么想法吗?也许另一种方法来创建要移动的项目列表?
谢谢!
【问题讨论】:
-
del lst_All[i]正在从lst_All中删除键,而不是从元组值中删除项。 -
不要使用元组!在
('B.txt')的情况下,您循环的是字符而不是项目
标签: python list dictionary tuples python-os