python - 使用循环创建文件夹
问题描述
import xml.etree.cElementTree as ET
import os
path = r'C:\Users\LME_s\Desktop\python quiz\Sessions'
for filename in os.listdir(path):
if not filename.endswith('.xml'): continue
fullname = os.path.join(path, filename)
tree = ET.parse(fullname)
root=tree.getroot()
numbers = [e.attrib['Number'] for e in root.findall('.//ActionUnit')]
base_path = r'C:\Users\LME_s\Desktop\python quiz\Sessions/new'
for folder in numbers:
os.mkdir(os.path.join(base_path, folder))
#print(numbers)
我创建了一个循环来读取 XML 数据并将这些数据动态地放在数组中。这是输出,所以这是我的问题。在每次迭代中,我需要为每个数组元素创建名为“AU45”和“not AU45”的文件夹。这是一个问题,在第一次迭代中,我创建了一个名为“10”的文件夹,但在下一次迭代中,我还有另一个 10 值,我得到一个异常,因为一个名为“10”的文件夹也存在。我怎样才能避免这种情况?
解决方案
将创建的文件夹保存在一组中。
import xml.etree.cElementTree as ET
import os
path = r'C:\Users\LME_s\Desktop\python quiz\Sessions'
created_folders = set()
for filename in os.listdir(path):
if not filename.endswith('.xml'): continue
fullname = os.path.join(path, filename)
tree = ET.parse(fullname)
root=tree.getroot()
numbers = [e.attrib['Number'] for e in root.findall('.//ActionUnit')]
base_path = r'C:\Users\LME_s\Desktop\python quiz\Sessions/new'
for folder in numbers:
if folder not in created_folders:
os.mkdir(os.path.join(base_path, folder))
created_folders.add(folder)
推荐阅读
- elasticsearch - 如何删除 Elasticsearch 中的快照数据?
- java - 我正在努力在远程服务器中发送电子邮件,但它在本地工作,在远程服务器中它抛出“AuthenticationFailedException”
- reactjs - 有没有办法使用 react-cookie 在午夜过期时为 cookie 设置默认值?
- php - Wordpress:永久删除自定义帖子类型帖子。删除:“1 个帖子已移至垃圾箱。撤消”消息
- python - 如何在python中删除一个类
- sqlmap - SQLMap:无法建立 SSL 连接:需要解决方案
- python-3.x - 我想在链接中格式化一些数据,但我无法在 python 中这样做
- perl - 为什么有些全局符号需要明确的包名
- node.js - TypeError:回调不是 readline 中的函数
- python - 在 django 网站中存储文章文本的最佳实践