I use Python. I have 100 zip files. Each zipfile contains more than 100 xmlfiles. Using the xmlfiles I create csvfiles.
from xml.etree.ElementTree import fromstring
import zipfile
from multiprocessing import Process
def parse_xml_for_csv1(data, writer1):
root = fromstring(data)
for node in root.iter('name'):
writer1.writerow(node.get('value'))
def create_csv1():
with open('output1.csv', 'w') as f1:
writer1 = csv.writer(f1)
for i in range(1, 100):
z = zipfile.ZipFile('xml' + str(i) + '.zip')
# z.namelist() contains more than 100 xml files
for finfo in z.namelist():
data = z.read(finfo)
parse_xml_for_csv1(data, writer1)
def create_csv2():
with open('output2.csv', 'w') as f2:
writer2 = csv.writer(f2)
for i in range(1, 100):
...
if __name__ == "__main__":
p1 = Process(target=create_csv1)
p2 = Process(target=create_csv2)
p1.start()
p2.start()
p1.join()
p2.join()
Please tell me, how to optimize my code? Make the code faster?
