Python - Desenvolvendo um programa parar ler um txt e pegar todos os xml

2 respostas
python
Guilherme_Praxedes

Prezados amigos, boa tarde.

Sou praticamente um programador Junior no python e tenho algumas duvidas.

Vou tentar ser bem objetivo.

O que eu quero fazer é.

Ler um arquivo txt, onde contem chaves de xml canceladas.
Após isso quero encontrar essas chaves dentro da pasta de origem onde tem os arquivos de xml baixados e excluir.

Tudo o que eu consigo fazer é apenas listar OS XMLs da pasta, mas não consigo ler o arquivo txt muito menos saber quais sao os cancelados dentro da pasta.

Meu código.

import os

def xmlcancelado():
    dir = os.path.abspath(str.replace(input("Caminho XML:"), "\\", "/"))
    for pastaAtual, subPasta, arquivos in os.walk(str.replace(dir, "\\", "/"), topdown=False):
        for arquivo in arquivos:
            if arquivo.endswith(".xml"):
                print("="*50)
                print(arquivo)

xmlcancelado()

2 Respostas

Guilherme_Praxedes

Galera, eu consegui desenvolver quase todo o caminho, porém agora eu estou com com um problema que ele não exclui o arquivo, algum auxilio?

import os

def xmlcancelado():
    dir = os.path.abspath(str.replace(input("Caminho XML:"), "\\", "/"))
    for pastaAtual, subPasta, arquivos in os.walk(str.replace(dir, "\\", "/")):
        for arquivo in arquivos:
            if arquivo.endswith(".bmp"):
             for arquivos2 in arquivos:
               if arquivos2.endswith(".txt"):
                  arq = str.replace(os.path.join(pastaAtual, arquivos2), "\\", "/")
                  manipulador = open(arq, "r")
                  for linha in manipulador:
                      linha = linha.rstrip()
                      if arquivo == linha:
                         os.remove(arquivo)
                            
xmlcancelado()
Guilherme_Praxedes

Cheguei a conclusão do programa.

import os

def xmlcancelado():
    dir = os.path.abspath(str.replace(input("Caminho XML:"), "\\", "/"))
    for pastaAtual, subPasta, arquivos in os.walk(str.replace(dir, "\\", "/")):
        for arquivo in arquivos:
            if arquivo.endswith(".xml"):
             for arquivos2 in arquivos:
               if arquivos2.endswith(".txt"):
                  arq = str.replace(os.path.join(pastaAtual, arquivos2), "\\", "/")
                  manipulador = open(arq, "r")
                  manipulador2 = manipulador.readlines()
                  for linha in manipulador2:
                      linha = linha.rstrip()
                      if arquivo == linha:
                         os.remove(dir + "/" + arquivo)
xmlcancelado()
Criado 7 de março de 2019
Ultima resposta 8 de mar. de 2019
Respostas 2
Participantes 1