python - 制作 xmls 的修改副本并将它们放在相应的文件夹中?
问题描述
我有这个文件夹,里面有这些:
每个xml都是这样的:
<?xml version="1.0" encoding="ASCII"?>
<Metadata version="1.0">
<CODE_OK>51041</CODE_OK>
<DeliveryDate>13/08/2018</DeliveryDate>
您在图片中看到的文件夹是空的。
我希望为每个文件夹(请参阅图片以获取帮助)制作您看到的每个 xml(有 2 个 xml)的副本,其中包含数字: <CODE_OK>51041</CODE_OK>
在 xml 中替换为文件夹名称中的数字。
这是创建文件夹的代码:
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))
如何继续描述的想法?
你至少能告诉我从哪里开始。这令人困惑。
解决方案
你可以参考这个:
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>
推荐阅读
- python - 通过 lambda 定义的函数列表的意外行为
- python - 过滤掉前一个条目的 30 个周期内的值
- flutter - 可以在 android 和 ios 的颤振应用程序上删除启动画面
- python - 创建包含 0 或 1 的 N 个元素加起来指定数字 X 的列表
- google-cloud-platform - 使用 org.apache.spark.sql.json 在 Spark sql 中创建临时视图
- blazor - Blazor - 如何为超出该数据类型最大值的值自定义 InputNumber 验证消息?
- python - 使用语音识别库中的监听函数时出错
- python - 即使在四舍五入后也无法获得分类报告
- kubernetes - K8S cert-manager 创建 acme 挑战 pod 时出错
- azure-cosmosdb - 如何通过 V3 SDK 读取分区统计信息