python 无法将文件夹保存在一个文件夹内

python cannot get folders to save inside of one folder

我 运行 遇到了一些麻烦,我相信这很容易解决。我目前正在从一个路径中提取 png 文件,并将它们保存在另一个路径中的文件夹中。这一切都正确完成。我之后尝试做的是将这些文件夹分组到一个 Results 文件夹中。我当前的代码没有抛出任何异常,结果文件夹已创建,但其他文件夹没有移动到 Results 文件夹中。

def create_folder(self,folder_name):
    '''Create folders if does not exist'''
    path,fileName = os.path.split(self.snmpPaths[0])
    target = os.path.join(path, folder_name)
    if not os.path.exists(target):
        os.makedirs(target)
    return target

其他方法的片段

    if flag ==1:
        for png in pngs:
            if 'MPM' in png:
                target = self.create_folder("MPM")
                folderList.add(target)
            elif 'DAT' in png:
                target = self.create_folder("DAT")
                folderList.add(target)
            elif 'HNR' in png:
                target = self.create_folder("HNR")
                folderList.add(target)
            elif 'VER' in png:
                target = self.create_folder("VER")
                folderList.add(target)
            elif 'XT2R' in png:
                target = self.create_folder("XT2R")
                folderList.add(target)
            else:
                target = self.create_folder("Other")
                folderList.add(target)
            try:
                print "png =", png
                print "target = ", target

                os.rename(png, os.path.join(target, png))
                print "png after =", png
            except BaseException:
                print "Could not rename file for target"

    for folder in folderList:
        # path,folder = os.path.split(folder)
        # folder = "./%s" %(folder)
        try:
            print "folder = ", folder
            print "results = ", results
            os.rename(folder, os.path.join(results, folder))
            print "folder after rename = ", folder
        except BaseException:
            print "Could not rename file for results"

这是我的 print 陈述的示例。如果需要,我可以提供更多。任何帮助将不胜感激。我试图复制与 png 文件相同的格式 (./FILE),如我的注释代码所示,但我会得到 BaseException。关于为什么我的代码没有按照我想要的方式执行的解释会很好。我猜这与我的 folder 变量有关。

png = ./VER_SUBMODE.png

目标=D:\SNMP\SPINACH\VER

png = ./VER_SUBMODE.png

png = ./VER_TX_STATUS.png

目标=D:\SNMP\SPINACH\VER

png = ./VER_TX_STATUS.png

文件夹=D:\SNMP\SPINACH\VER

结果=D:\SNMP\SPINACH\Results_2015-05-08_09-21-01

重命名后的文件夹 = D:\SNMP\SPINACH\VER

试试这个:

os.rename(folder, os.path.join(results, os.path.basename(folder)))

您的问题在于尝试连接共享同一路径的两个目录。以上在我的机器上有效。