小编Rob*_*arr的帖子

我可以更改BeautifulSoup关于将XML标记转换为小写的行为吗?

我正在研究用于解析用XML编写的配置文件的代码,其中XML标签是大小写混合的,并且案例很重要.Beautiful Soup似乎默认将XML标记转换为小写,我想改变这种行为.

我不是第一个就这个问题提出问题的人[见这里 ].但是,我不理解该问题的答案,并且在BeautifulSoup-3.1.0.1中,BeautifulSoup.py似乎不包含任何" encodedName"或" Tag.__str__"的实例.

python xml beautifulsoup

6
推荐指数
2
解决办法
1853
查看次数

如何提取然后引用python模块中定义的变量?

我正在尝试为我公司的测试环境构建一个简单的环境检查脚本.我的目标是能够ping为给定测试环境实例定义的每个主机.主机在如下文件中定义:

#!/usr/bin/env python
host_ip = '192.168.100.10'
router_ip = '192.168.100.254'
fs_ip = '192.168.200.10'
Run Code Online (Sandbox Code Playgroud)

如何以可迭代的方式获取所有这些值(即我需要遍历并ping每个IP地址)?

我看过local()和vars(),但尝试做这样的事情:

for key, value in vars():
    print key, value
Run Code Online (Sandbox Code Playgroud)

生成此错误:

ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)

我已经能够通过检查dir(local_variables)不包含'__'字符串的值来提取所有变量的名称,但是我有一个字符串列表,我无法弄清楚如何从字符串到达同名变量的值.

python variables import

2
推荐指数
1
解决办法
1765
查看次数

我可以使用re.sub(或regexobject.sub)替换子组中的文本吗?

我需要解析一个看起来像这样的配置文件(简化):

<config>
<links>
<link name="Link1" id="1">
 <encapsulation>
  <mode>ipsec</mode>
 </encapsulation>
</link>
<link name="Link2" id="2">
 <encapsulation>
  <mode>udp</mode>
 </encapsulation>
</link>
</links>
Run Code Online (Sandbox Code Playgroud)

我的目标是能够更改特定链接的参数,但是我无法让替换正常工作.我有一个正则表达式,可以隔离特定链接上的参数值,其中值包含在捕获组1中:

link_id = r'id="1"'
parameter = 'mode'
link_regex = '<link [\w\W]+ %s>[\w\W]*[\w\W]*<%s>([\w\W]*)</%s>[\w\W]*</link>' \
% (link_id, parameter, parameter)
Run Code Online (Sandbox Code Playgroud)

从而,

print re.search(final_regex, f_read).group(1)
Run Code Online (Sandbox Code Playgroud)

打印ipsec

正则表达式中的示例似乎都假设人们想要在替换中使用捕获组,但我需要做的是替换捕获组本身(例如,将Link1模式从ipsec更改为udp).

python regex regex-group

0
推荐指数
1
解决办法
441
查看次数

标签 统计

python ×3

beautifulsoup ×1

import ×1

regex ×1

regex-group ×1

variables ×1

xml ×1