小编dre*_*mac的帖子

BeautifulSoup .prettify()的自定义缩进宽度

有没有办法为.prettify()函数定义自定义缩进宽度?从我可以从它的来源获得 -

def prettify(self, encoding=None, formatter="minimal"):
    if encoding is None:
        return self.decode(True, formatter=formatter)
    else:
        return self.encode(encoding, True, formatter=formatter)
Run Code Online (Sandbox Code Playgroud)

无法指定缩进宽度.我认为这是因为功能中的这一行decode_contents()-

s.append(" " * (indent_level - 1))
Run Code Online (Sandbox Code Playgroud)

其中固定长度为1个空格!(为什么!!)我尝试指定indent_level=4,这只是导致 -

    <section>
     <article>
      <h1>
      </h1>
      <p>
      </p>
     </article>
    </section>
Run Code Online (Sandbox Code Playgroud)

这看起来简直是愚蠢的.:|

现在,我可以解决这个问题,但我只是想确定是否有任何我遗漏的东西.因为这应该是一个基本功能.: - /

如果你有更好的方法来美化HTML代码,请告诉我.

python code-formatting indentation beautifulsoup

27
推荐指数
3
解决办法
7252
查看次数

在Twig模板中"开始"

我有一个树枝模板,我想测试一个项目是否以某个值开头

{% if item.ContentTypeId == '0x0120' %}
    <td><a href='?parentId={{ item.Id }}'>{{ item.BaseName }}</a><br /></td>
{% else %}
    <td><a href='?{{ item.UrlPrefix }}'>{{ item.LinkFilename }}</a></td>
{% endif %}
Run Code Online (Sandbox Code Playgroud)

0x0120可能看起来像这样或更复杂,如0x0120D52000D430D2B0D8DD6F4BBB16123680E4F787006540​​36413B65C740B168E780DA0FB4BX.我唯一想做的就是确保它以0x0120开头.

理想的解决方案是使用正则表达式解决这个问题,但我不知道Twig是否支持这个?

谢谢

php regex comparison twig

27
推荐指数
3
解决办法
3万
查看次数

你如何在bash中解析文件名?

我的文件名格式如下:

system-source-yyyymmdd.dat

我希望能够使用" - "作为分隔符来解析文件名的不同位.

bash shell parsing cut tokenize

26
推荐指数
4
解决办法
4万
查看次数

在PHP/HTML中交替行颜色的最简单方法?

这是我的一个PHP示例.任何人都可以找到更短/更简单的方法吗?

<? foreach($posts as $post){?>
    <div class="<?=($c++%2==1)?‘odd’:NULL?>">
        <?=$post?>
    </div>
<? }?>

<style>
    .odd{background-color:red;}
</style>
Run Code Online (Sandbox Code Playgroud)

其他语言的例子也很有趣.

html css php colors

26
推荐指数
5
解决办法
5万
查看次数

如何将简单数组转换为关联数组?

在PHP中将简单数组转换为关联数组的最快方法是什么,以便可以在isset($array[$value])?中检查值?

这是进行以下转换的最快方式:

$array = array(1, 2, 3, 4, 5);
$assoc = array();

foreach ($array as $i => $value) {
        $assoc[$value] = 1;
}
Run Code Online (Sandbox Code Playgroud)

php arrays dictionary associative

26
推荐指数
3
解决办法
5万
查看次数

如何在Python中继承str

我试图继承str对象,并添加几个方法.我的主要目的是学习如何做到这一点.我被困在哪里,我是否应该在元类中继承字符串,并使用该元或子类str直接创建我的类?

而且,我想我需要以__new__()某种方式实现,因为,我的自定义方法将修改我的字符串对象,并将返回新的mystr obj.

我的类的方法应该可以使用str方法完全链接,并且应该在自定义方法修改它时始终返回一个新的我的类实例.我希望能够做到这样的事情:

a = mystr("something")
b = a.lower().mycustommethod().myothercustommethod().capitalize()
issubclass(b,mystr) # True
Run Code Online (Sandbox Code Playgroud)

我希望拥有它拥有的所有能力str.例如,a = mystr("something")然后我想使用它,如a.capitalize().mycustommethod().lower()

我的理解是,我需要实施__new__().我想是这样的,因为,字符串方法可能会尝试创建新的str实例.所以,如果我覆盖__new__(),他们应该会返回我的自定义str类.但是,__init__()在这种情况下,我不知道如何将参数传递给我的自定义类的方法.我想我需要使用type()才能在__new__()方法中创建一个新实例吗?

python fluent-interface subclassing

26
推荐指数
4
解决办法
2万
查看次数

循序渐进:如何对客户端IDE进行Xdebug故障排除连接

背景

使用Xdebug与PHP和Komodo IDE以及Eclipse PDT.

Xdebug安装在服务器上并正常工作.这是确认的,因为Xdebug代码命令在插入服务器上的PHP文件时按预期工作.

问题

连接到客户端工作站不起作用,很难确定原因,因为它失败了多个IDE.

如果您知道Xdebug已安装并在服务器上运行,但客户端无法连接,那么请逐步检查清单.

任何人都可以帮助添加到这个以制作全面的故障排除清单吗?

具体来说,是否有任何简单的方法来确保网络流量到达客户端,并且以IDE期望查看数据的方式正确格式化?

  • SSH进入Web主机并尝试访问客户端:

    • 可以主持到达客户端吗?(ping -c 5 xxx.xxx.xxx.xxx)
    • 可以托管到达9000端口?(nmap -p 9000 xxx.xxx.xxx.xxx)
    • 如果以上两个成功,输出应该是什么?
    • 如果上述两个失败,下一个故障排除步骤是什么?
  • 验证客户端上基于软件的防火墙的设置

  • 验证linux主机上的iptables设置
  • 验证硬件防火墙b/t客户端和主机

目标

目标是找到一些解决方案,其中客户端计算机上的人员至少可以确认某些东西是否到达客户端而无需确定IDE是否是问题,因为IDE是另一个可能引入问题的复杂程度.

php ide network-programming xdebug

26
推荐指数
4
解决办法
5106
查看次数

Python 2中的Eval范围与3

我在Python 3中遇到了奇怪的eval行为 - 当在列表推导中调用eval时,不会拾取局部变量.

def apply_op():
    x, y, z = [0.5, 0.25, 0.75]
    op = "x,y,z"
    return [eval(o) for o in op.split(",")]
print(apply_op())
Run Code Online (Sandbox Code Playgroud)

它在Python 3中出错:

? python --version
Python 3.4.3
? python eval.py
Traceback (most recent call last):
  File "eval.py", line 7, in <module>
    print(apply_op())
  File "eval.py", line 5, in apply_op
    return [eval(o) % 1 for o in op.split(",")]
  File "eval.py", line 5, in <listcomp>
    return [eval(o) % 1 for o in op.split(",")]
  File "<string>", line 1, in <module>
NameError: …
Run Code Online (Sandbox Code Playgroud)

python compatibility python-3.x python-3.4

26
推荐指数
1
解决办法
1587
查看次数

在Spring Boot中转义Yaml中的Map键中的一个点

我有一个以下的yml配置:

foo:
  bar.com:
    a: b
  baz.com:
    a: c
Run Code Online (Sandbox Code Playgroud)

使用以下类,Spring尝试使用键"bar"和"baz"注入地图,将点视为分隔符:

public class JavaBean {
    private Map<String, AnotherBean> foo;
(...)
}
Run Code Online (Sandbox Code Playgroud)

我试过引用密钥(即'bar.com'或"bar.com"),但无济于事 - 仍然是同样的问题.有没有解决的办法?

spring yaml key spring-boot

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

在yaml中使用占位符

有没有办法在yaml中使用占位符,如下所示:

foo: &FOO
    <<propname>>: 
        type: number 
        default: <<default>>

bar:
    - *FOO 
       propname: "some_prop"
       default: "some default" 
Run Code Online (Sandbox Code Playgroud)

yaml indirection computed-properties template-variables

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