Last active
April 17, 2019 12:29
-
-
Save joellobo/b8699cd11d0e05d942efd16f0ff8b6ba to your computer and use it in GitHub Desktop.
copy-python
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
BO.DIV.ARQ.02200800.23032019.00483144000146.120190050869. R462.XML | |
BO.DIV.ARQ.06200800.25102018.03240967000139.120180001138.000000001.R462.XML | |
BO.DIV.ARQ.02200800.23032019.00483144000146.120190050869. R462.PET.PDF | |
BO.DIV.ARQ.06200800.25102018.03240967000139.120180001138.000000001.R462.PET.PDF | |
BO.DIV.ARQ.02200800.23032019.00483144000146.120190050869 .R462.PEC.PDF | |
BO.DIV.ARQ.21200821.25102018.68384494000199.120180001984.451543009.R462.CDA.PDF | |
import os | |
import xml.etree.ElementTree as ET | |
import shutil | |
import logging | |
BASE_PATH = "/home/64943127304/dev/playground/python" | |
OLD_BASE_PATH = BASE_PATH + "/old-files" | |
NEW_BASE_PATH = BASE_PATH + "/new-files" | |
OLD_XML_PATH = OLD_BASE_PATH + "/xml" | |
OLD_PET_PATH = OLD_BASE_PATH + "/pet" | |
OLD_CDA_PATH = OLD_BASE_PATH + "/cda" | |
NEW_XML_PATH = NEW_BASE_PATH + "/xml" | |
NEW_PET_PATH = NEW_BASE_PATH + "/pet" | |
NEW_CDA_PATH = NEW_BASE_PATH + "/cda" | |
def main(): | |
logger = logging.getLogger('dataprev') | |
hdlr = logging.FileHandler('/home/64943127304/dev/playground/python/dataprev.log') | |
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') | |
hdlr.setFormatter(formatter) | |
logger.addHandler(hdlr) | |
logger.setLevel(logging.WARNING) | |
logger.info('OLD_XML_PATH:' + OLD_XML_PATH) | |
clear_new_dir() | |
summary('Antes da execucao') | |
for filename in os.listdir(OLD_XML_PATH): | |
src = OLD_XML_PATH + '/' + filename | |
print(src) | |
root = ET.parse(src).getroot() | |
before_name, after_name = split_name(filename) | |
for numero_lote in root.findall('NumeroLote'): | |
xml_str = ET.tostring(numero_lote).decode() | |
value_numero_lote = numero_lote.get('NumeroLote') | |
#print(xml_str) | |
#print(value_numero_lote) | |
#for peticao in root.findall('Peticao'): | |
counter_cda_files = counter_cda(root) | |
rename_xml(filename, before_name, after_name, counter_cda_files) | |
copiar_cda(root, before_name, after_name) | |
#copiar_pet() | |
summary('Depois da execucao') | |
def split_name(file_name): | |
fn = file_name.split('.') | |
before_name = fn[0] + '.' + fn[1] + '.' + fn[2] + '.' + fn[3] + '.' + fn[4] + '.' + fn[5] + '.' + fn[6] + '.' | |
after_name = '.' + fn[7] + '.' + fn[8] | |
#print('before_name: ' + before_name + ' after_name: ' + after_name) | |
return before_name, after_name | |
def rename_xml(old_xml, before_name, after_name, counter_cda_files): | |
new_xml = before_name + counter_cda_files + after_name | |
print('old_xml:' + OLD_XML_PATH + '/' + old_xml + ' new_xml:' + NEW_XML_PATH + '/' + new_xml) | |
shutil.copyfile(OLD_XML_PATH + '/' + old_xml, NEW_XML_PATH + '/' + new_xml) | |
def counter_cda(root): | |
cda = root.findall('Peticao/CDA') | |
counter = len(cda) | |
cda_counter = "{0:0>12}".format(counter) | |
return cda_counter | |
def copiar_cda(root, before_name, after_name): | |
cda = root.findall('Peticao/CDA') | |
counter = len(cda) | |
cda_counter = "{0:0>12}".format(counter) | |
new_cda = before_name + cda_counter + after_name | |
#print('new_cda: ' + new_cda) | |
def copiar_pet(): | |
print('copiar pet') | |
def summary(label): | |
print('===================================================') | |
print(label) | |
print('---------------------------------------------------') | |
old_xml = os.listdir(OLD_XML_PATH) | |
print ('Total Old XML:' + str(len(old_xml))) | |
new_xml = os.listdir(NEW_XML_PATH) | |
print ('Total New XML:' + str(len(new_xml))) | |
def clear_new_dir(): | |
shutil.rmtree(NEW_BASE_PATH) | |
os.makedirs(NEW_XML_PATH) | |
os.makedirs(NEW_CDA_PATH) | |
os.makedirs(NEW_PET_PATH) | |
# Driver Code | |
if __name__ == '__main__': | |
# Calling main() function | |
main() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
nome dos arquivos