<p>我需要用第二个文件中的值替换XML文件。
问题是,由于某种原因,我的xml文件被完全清除,所有数据都被删除。
应该保留数据,除非它在XML文件上找到${key},然后它应该只用${value}替换它</p>
<pre><code>import os
import progressbar
#VARIABLE TO CONCATENATE WITH THE FILE NAME
home = '/u01/app/oracle/mftxfer_adoc/DAYS/ola/'
#I WILL USE THIS FOLDER TO CHECK FOR FILES WITH THE NAME AJOG
directory = os.listdir('/u01/app/oracle/mftxfer_adoc/DAYS/ola/')
#THIS FILE IS MY FILTER LIST
word_list = open('/u01/app/oracle/mftxfer_adoc/DAYS/teste.txt').readlines()
#FOR EACH FILE THAT ENCOUNTERS ON THE DIRECTORY
for file_xml in directory:
#IF THE FILENAME HAS AJOG IN IT
if file_xml.__contains__('AJOG'):
print("Processing the file"+" "+file_xml)
#OPENS THE FILE
file_read = open(home+file_xml, 'r').readlines()
#NOW WILL CHECK IF THE LINE CONTAINS A SPECIFIC STRING
for line in file_read:
if "<codigo>" in line:
#IF HAS THEN PICKS THE FILTER
for word_list_line in word_list:
#DEVIDES THE FILTER IN 2 COLUMNS
key = str((word_list_line.split(' ')[0]))
value = str((word_list_line.split(' ')[1]))
#CHECKS IF THE VALUE FROM THE FIRST COLUMN IN ON THE LINE OF THE AJOG FILE
if key in line:
print("Found the value "+key+" on file "+file_xml)
#IF SO THEN REPLACE THE VALUE FROM THE FIRST COLUMN WITH THE SECOND COLUMN
file_read=line.replace(key, value)
#THE SAME FILE IS OPENED IN WRITE MODE
file_write = open(home + file_xml, 'w')
#WRITES THE CHANGES TO THE LINE
file_write.writelines(file_read)
</code></pre>