実行する必要があるジョブをリストした xml ファイルがあります。Pythonで解析できるようにしたいです。ここに私のサンプルXMLファイルがあります
XML コード:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Jobs>
<Job name="Leo" type="upload">
<File name="Leo.csv" source="/leegin/leo/OU" destination="/leegin/leo/OU/scripts" archive="/leegin/leo/OU/history" date="1" del="1" stat="1"/>
<File name="Leo2.csv" source="/leegin/leo/OU" destination="/leegin/leo/OU/scripts" archive="/leegin/leo/OU/history" date="1" del="1" stat="1"/>
<Log name="Leo.txt" path="/leegin/leo/OU/log"/>
<Notify name="Leo Cruz" email="lcruz@me.com"/>
<ftp port="21" proto="0" pasvmode="0" mode="0"/>
</Job>
<Job name="Manny" type="download">
<File name="Manny.csv" source="/leegin/leo/OU" destination="/leegin/leo/OU/scripts" archive="/leegin/leo/OU/history" date="1" del="1" stat="1"/>
<File name="Manny2.csv" source="/leegin/leo/OU" destination="/leegin/leo/OU/scripts" archive="/leegin/leo/OU/history" date="1" del="1" stat="1"/>
<Log name="Manny.txt" path="/leegin/leo/OU/log"/>
<Notify name="Manny Caparas" email="mcaparas@me.com"/>
<ftp port="21" proto="0" pasvmode="0" mode="0"/>
</Job>
<Job name="Joe" type="copy">
<File name="Joe.csv" source="/leegin/leo/OU" destination="/leegin/leo/OU/scripts" archive="/leegin/leo/OU/history" date="1" del="1" stat="1"/>
<File name="Joe2.csv" source="/leegin/leo/OU" destination="/leegin/leo/OU/scripts" archive="/leegin/leo/OU/history" date="1" del="1" stat="1"/>
<Log name="Joe.txt" path="/leegin/leo/OU/log"/>
<Notify name="Joe Gomez" email="jgomez@me.com"/>
<ftp port="21" proto="0" pasvmode="0" mode="0"/>
</Job>
</Jobs>
Python コード:
#!/usr/bin/python2.6
import sys
import optparse
def main():
desc="""This script is used to setup and run an Automator job."""
parser = optparse.OptionParser()
parser.description = desc
parser.add_option('-j', dest='jobname', type='str', action='store', help='Name of job to execute', metavar='[JobName]')
parser.add_option('-v', dest='verbose', action='store_true', default=False, help='Used to view scripts debug information.')
(options, args) = parser.parse_args()
mandatory_options = ['jobname']
for m in mandatory_options:
if not options.__dict__[m]:
print 'Options -j is required.'
parser.print_help()
sys.exit(-1)
getjob(options.jobname)
def getjob(task):
from xml.etree import ElementTree
from xml.etree.ElementTree import Element
from xml.etree.ElementTree import SubElement
doc = ElementTree.parse('/opt/automize/template/jobs.xml')
Files = doc.findall("./Job/File")
for File in Files:
print File.attrib['name']
if __name__ == '__main__':
main()
私がやろうとしているのは、python スクリプトにジョブ名を付けてから、スクリプトに XML ファイル内のジョブを見つけさせ、特定のジョブに関連する部分だけを抽出させることです。
これまでのところ、すべてのジョブまたはすべてのファイルのリストを作成できました。ただし、特定の仕事のためにこれを行うことはできませんでした。この件に関するご指導をいただければ幸いです。