使用minidom解析Bash导出变量,Python中出现错误

使用minidom解析Bash导出变量,Python中出现错误,python,bash,environment-variables,Python,Bash,Environment Variables,在我的/etc/bash.bashrc文件中,我有以下内容: export SYNCTOOL=/root/Desktop/gb alias synctest='python $SYNCTOOL/App.py' 在App.py中: from xml.dom.minidom import parse XML = parse('$SYNCTOOL/Data/Config.xml') 在shell中键入synctest时,出现以下错误: root@bt:~# synctest Traceback (

在我的/etc/bash.bashrc文件中,我有以下内容:

export SYNCTOOL=/root/Desktop/gb
alias synctest='python $SYNCTOOL/App.py'
在App.py中:

from xml.dom.minidom import parse
XML = parse('$SYNCTOOL/Data/Config.xml')
在shell中键入synctest时,出现以下错误:

root@bt:~# synctest
Traceback (most recent call last):
  File "/root/Desktop/gb/App.py", line 12, in <module>
    XML = parse('$SYNCTOOL/Data/Config.xml')
  File "/usr/lib/python2.6/xml/dom/minidom.py", line 1918, in parse
    return expatbuilder.parse(file)
  File "/usr/lib/python2.6/xml/dom/expatbuilder.py", line 922, in parse
    fp = open(file, 'rb')
IOError: [Errno 2] No such file or directory: '$SYNCTOOL/Data/Config.xml'
使用cat命令查找文件时:

root@bt:~# cat $SYNCTOOL/Data/Config.xml
<?xml version="1.0" ?>
<AllConfigurations>

        <!-- PROGRAM OPTIONS START -->
..
...

所以,我真的很困惑。我该怎么办?

您试图在Python程序中使用shell变量$SYNCTOOL的值:

如果要从Python程序中读取环境变量,请使用以下对象:


或者,您可以使用命令行参数读取要解析的文件名。

您试图在Python程序中使用shell变量$SYNCTOOL的值:

如果要从Python程序中读取环境变量,请使用以下对象:


或者,您可以使用从命令行参数中读取要分析的文件名。

Bash变量不会自动展开,请使用os.environ访问它们:

XML = parse('%s/Data/Config.xml' % os.environ['SYNCTOOL'])

Bash变量不会自动展开,请使用os.environ访问它们:

XML = parse('%s/Data/Config.xml' % os.environ['SYNCTOOL'])
XML = parse('%s/Data/Config.xml' % os.environ['SYNCTOOL'])