如何在命令行上运行python代码并传递打印的值?

2024-10-03 04:38:27 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我尝试解析xml并通过python在命令行上获取一个值。下面的代码可以很好地解释它自己

APPLY_DIR=$(python -c 'from xml.dom import minidom;xmldoc=minidom.parse("args.xml");itemlist=xmldoc.getElementsByTagName("item");print str(itemlist[6].attributes["patchApplyDir"])')
REVERT_DIR=$(python -c 'from xml.dom import minidom;xmldoc=minidom.parse("args.xml");itemlist=xmldoc.getElementsByTagName("item");print str(itemlist[7].attributes["patchRevertDir"])')

echo $APPLY_DIR
echo $REVERT_DIR

问题是它返回以下输出:

<xml.dom.minidom.Attr instance at 0x7fba97db07e8>
<xml.dom.minidom.Attr instance at 0x7fb820e80998>

这是我的xml文件args.xml

<data>
        <args>
                <item   svn_repo = "https://ntil-svn-u1:18080/svn/HSAN_SW_DEVELOPMENT/HSAN-SW-DEV/Project/Engineering/Code/HSAN_INTEGRATION/HSAN_MERGE/Tags/HSAN_ST_RELEASE_16_12_2016_"></item>
                <item   svn_revision = "991/"></item>
                <item   checkout_path = "/root/Neeraj/GGG"></item>
                <item   pre_build = "Default1"></item>
                <item   build_script = "Default1"></item>
                <item   svnCheckoutPath = "/root/Neeraj/GGG"></item>
                <item   patchApplyDir = "./GGG/Apply"></item>
                <item   patchRevertDir = "./GGG/Revert"></item>
                <item   APPLY_DIR="./Apply"></item>
                <item   REVERT_DIR="./Revert"></item>
                <item   VERSION_MINOR="100"></item>
                <item   VERSION_INTERNAL="200"></item>
                <item INPUT="300"></item>
        </args>
</data>

请告诉我我做错了什么?另外,我不想用一个单独的文件来编写python代码,我只能在命令中这样做。谢谢


Tags: 代码fromdirargssvnxmlitemdom
2条回答

如果需要该值,请尝试执行attributes['attribute'].value

比如:

APPLY_DIR=$(python -c 'from xml.dom import minidom;xmldoc=minidom.parse("args.xml");itemlist=xmldoc.getElementsByTagName("item");print str(itemlist[6].attributes["patchApplyDir"].value)')

在电话里,无法测试。试着回复

如果需要选定项的值,请使用.value

APPLY_DIR=$(python -c 'from xml.dom import minidom;xmldoc=minidom.parse("args.xml");itemlist=xmldoc.getElementsByTagName("item");print itemlist[6].attributes["patchApplyDir"].value')
REVERT_DIR=$(python -c 'from xml.dom import minidom;xmldoc=minidom.parse("args.xml");itemlist=xmldoc.getElementsByTagName("item");print itemlist[7].attributes["patchRevertDir"].value')

echo $APPLY_DIR
# ./GGG/Apply

echo $REVERT_DIR
# ./GGG/Revert

相关问题 更多 >