字典python中意外的额外ghost值

时间:2016-02-15 09:41:27

标签: python dictionary ftp ftplib

我正在编写一个Python脚本,使用 OuterMainClass outer = new OuterMainClass(); outer.new InnerAsyncClass(param) .execute(); 模块从ftp位置下载文件。我下载的文件专门命名为ftplib,位于whatsnew.txt内,有许多此类文件夹,我下载了位于其中的所有{ftp location}/{folder}/{subfolder}

我这样做的方法是在下载之前,我收集ftp位置的目录树看起来像什么,并将其存储为字典(我还将这个字典保存为json文件,保存在名为{的输出文件中{1}})。

现在,当我解析此字典以获取{folder}和{subfolder}的值时,字典中会出现意外的额外值,特别是图像中显示的whatsnew.txtdirectory_tree.txt是文件夹,/318/08是子文件夹。我不知道这个幽灵入口来自哪里。

image: error in retrieving from unexpected ftp location

这是意料之外的,因为这是相关文件夹的样子:

contents of 318 folder in ftp

没有frickin'318子文件夹。

这是我的代码片段(Python 2.7.9),我认为我错了。我该如何解决我的错误?我如何修复这个额外的价值?我希望没有必要驱魔。希望只是驱魔我的编程不足。感谢。

08

另外,我很害怕。

1 个答案:

答案 0 :(得分:0)

我已修复(?)我的问题,但我无法解释。从我上面发布的代码中,我更改了一部分:

for folder in directory_tree["ControlPatch_CPR"]:
    for subfolder in folder:
        if len(subfolder) == 1:

为:

for folder in directory_tree["ControlPatch_CPR"]:
    for subfolder in directory_tree["ControlPatch_CPR"][folder]:
        if len(subfolder) == 1:

此部分directory_tree["ControlPatch_CPR"][folder]是一个列表,因此我认为subfolder in folder只是将folder称为相同的可迭代。有人在乎解释吗?感谢。

无论如何,问题已经解决了。呼。我现在可以回到我的电脑了。