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

2024-10-02 08:20:04 发布

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

在我的/等/巴什.bashrc文件,我有以下内容:

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

在应用程序副本公司名称:

^{pr2}$

当我在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 -->
..
...

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


Tags: inpyconfigappdataparselineroot
2条回答

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

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

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

XML = parse('$SYNCTOOL/Data/Config.xml')

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

^{pr2}$

或者,可以使用^{}从命令行参数读取要解析的文件名。在

相关问题 更多 >

    热门问题