使用python创建不存在的多个文件夹

2024-06-18 14:40:36 发布

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

我在一个目录中有几个xml文件(超过20000个)。我需要从每个xml文件中获取应用程序文件夹的名称,然后将文件移动到其各自的应用程序文件夹中(两个文件的应用程序名称可以相同)。在

使用"if not os.path.exists('Working_Dir/app'):"我尝试检查每个应用程序是否存在。在下一行中,我试图创建该文件夹,但不知何故它没有检查文件夹是否存在。在

 #!/usr/bin/python

import os, sys, glob

Working_Dir = "/home"
path1 = "/home/xmlFiles"
path2 = "/home/JobFolder"

if not os.path.exists(path1):
    os.mkdir(path1, 0755);

if not os.path.exists(path2):
    os.mkdir(path2, 0755);

for files in glob.glob("*.xml"):
    f = open( files)
    for line in f:
        if "ParentApplication" in line:
            app = line.split('.')[1]
            if not os.path.exists('Working_Dir/app'):
                os.makedirs(app)

下面是我得到的错误。在

^{pr2}$

Tags: 文件path文件夹app应用程序homeifos
2条回答

我想这个链接可能对你有帮助。在

  1. python-2-6-file-exists-errno-17
  2. python-fileexists-error-when-making-directory

我认为你所做的只是提出例外,我不能再出现你的例外。在

shutil.move('Working_Dir/f.name', 'Working_Dir/app')这是正确的吗? 我想它是在工作目录中搜索f.name。 看看这是否有帮助:

import os, sys, glob, errno, shutil`

Working_Dir = "/home"
path1 = "/home/xmlFiles"
path2 = "/home/JobFolder"

if not os.path.exists(path1):
os.mkdir(path1, 0755);

if not os.path.exists(path2):
os.mkdir(path2, 0755);

for files in glob.glob("*.py"):
 f = open( files)
 for line in f:
    if "test." in line:
        app = line.split('.')[1]
        print app
        try:
            print app
            os.makedirs(Working_Dir+'/'+app, 0755)
        except OSError as exception:
            if exception.errno != 17:
                raise
        s=Working_Dir+'/'+f.name
        t=Working_Dir+'/'+app+'/'
        shutil.move(s, t)

相关问题 更多 >