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

2024-04-19 14:25:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了一些麻烦,我相信这是很容易解决的。我目前正在从一个路径提取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\u SUBMODE.png

目标=D:\SNMP\SPINACH\VER

png after=./VER\u SUBMODE.png之后

png=./VER\u TX\u STATUS.png

目标=D:\SNMP\SPINACH\VER

png after=./VER\u TX\u STATUS.png

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

结果=D:\SNMP\SPINACH\results\U 2015-05-08\U 09-21-01

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


Tags: pathinself文件夹addtargetpngos
1条回答
网友
1楼 · 发布于 2024-04-19 14:25:50

试试这个:

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

您的问题是试图连接两个共享同一路径的目录。以上在我的机器上工作

相关问题 更多 >