我在一个目录中有几个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)
以下是我得到的错误。
$ python test.py
Traceback (most recent call last):
File "test.py", line 21, in <module>
os.mkdir(app, 0755);
OSError: [Errno 17] File exists: 'TRC'
答案 0 :(得分:0)
我认为这个链接可能会帮助你。
我认为你所做的只是提出异常。我无法重新出现你的异常。
答案 1 :(得分:0)
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)