Бесконечный l oop разбор файлов в каталоге: ошибка при добавлении новых файлов - Python - PullRequest
0 голосов
/ 18 апреля 2020

Мне нужна помощь с перемещением файла l oop. Что мне делать: я пытаюсь проанализировать файлы XML в указанном каталоге c, найти определенный узел c в каждом файле и, основываясь на значении внутри одного из атрибутов, намереваюсь переместить файл в другой каталог. Я также хотел бы иметь бесконечное число l oop (при условии, что файлы могут попадать в папку все больше и больше). Вот мой код:

import xml.etree.ElementTree as ET
import os
import shutil

count = 0

while (count<1):
    directory = r'C:\Users\Elitebook\Desktop\Folder'
    destination = r'C:\Users\Elitebook\Desktop\Folder2'
    for filename in os.listdir(directory):
        if filename.endswith('.xml'):
            fullname = os.path.join(directory, filename)
            tree = ET.parse(fullname)
            root = tree.getroot()
            Value_1 = (root.find("./some way to xml node").attrib['attrib'])
            if Value_1 == "1":
                shutil.move(fullname, destination)
        continue

Так что это работает как задумано. Перемещает все файлы из первой папки во вторую. После этого я пытаюсь добавить в первую папку новые файлы xml и после этого получаю сообщение об ошибке:

Traceback (most recent call last):
  File "C:\Users\Elitebook\Desktop\Folder\New.py", line 13, in <module>
    tree = ET.parse(fullname)
  File "C:\Users\Elitebook\AppData\Local\Programs\Python\Python37\lib\xml\etree\ElementTree.py", line 1197, in parse
    tree.parse(source, parser)
  File "C:\Users\Elitebook\AppData\Local\Programs\Python\Python37\lib\xml\etree\ElementTree.py", line 587, in parse
    source = open(source, "rb")
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\Elitebook\\Desktop\\Folder\\test1.xml'

Я предполагаю, что ошибка может быть как-то связана с двойными зазорами, как указано в последней строке ошибки, но всякий раз, когда я менял код, он тоже не работал. Если честно, я впервые использую Python, поэтому не могу понять, где я застрял. Любая помощь приветствуется.

Заранее спасибо,

это

...