我有这个文件夹,里面有这些文件:
每个xml都是这样的:
<?xml version="1.0" encoding="ASCII"?>
<Metadata version="1.0">
<CODE_OK>51041</CODE_OK>
<DeliveryDate>13/08/2018</DeliveryDate>
您在图片中看到的文件夹为空。
我想为每个文件夹(请参阅图片获得帮助)制作每个xml(有2个xml)的副本,您看到的xml编号为:<CODE_OK>51041</CODE_OK>
,名称中的数字替换为他们的文件夹。
以下是制作文件夹的代码:
import pandas as pd
import os
path = path
df = pd.read_csv(path)
for i in df["col1"].astype(str):
os.mkdir(os.path.join(path, i))
如何进行所描述的想法?
您至少可以告诉我从哪里开始。这很令人困惑。
答案 0 :(得分:0)
您可以参考以下内容:
import os
from xml.dom import minidom
import shutil
folder_path = "D:/py_projects/test"
folder_name = "test"
root = os.listdir(folder_path)
xmls = []
folders = []
for file in root:
if file.find(".xml") != -1:
xmls.append(file)
else:
folders.append(file)
for xml in xmls:
for folder in folders:
shutil.copy(folder_path+"/"+xml, folder_path+"/"+folder+"/"+xml)
dom = minidom.parse(folder_path + "/" + xml)
root = dom.documentElement
code_ok = root.getElementsByTagName("Code_OK")
for i in range(len(code_ok)):
print(code_ok[i].firstChild.data)
code_ok[i].firstChild.data = folder
print(code_ok[i].firstChild.data)
fileHandle = open(folder_path+"/"+folder+"/"+xml, 'w')
dom.writexml(fileHandle, ' ', ' ', ' ', 'UTF-8')
fileHandle.close()
我使用另一个xlm文件,因为您提供的文件不正确。 这是xlm示例:
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<maxid>4</maxid>
<Code_OK>12324</Code_OK>
<login username="pytest" passwd='123456'>
<caption>Python</caption>
<item id="4">
<caption>test</caption>
</item>
</login>
<item id="2">
<caption>Zope</caption>
</item>
</catalog>