小编gec*_*kon的帖子

三个点目录遍历与mv

如果执行以下命令,文件将在何处:

mv <file> ...
Run Code Online (Sandbox Code Playgroud)

请注意,...当前目录中没有名称的目录.

linux command-line

7
推荐指数
1
解决办法
6765
查看次数

Difflib的SequenceMatcher - 定制的相等

我一直在尝试使用SequenceMatcher创建嵌套或递归效果.

最终目标是比较两个序列,两个序列都可能包含不同类型的实例.

例如,序列可以是:

l1 = [1, "Foo", "Bar", 3]
l2 = [1, "Fo", "Bak", 2]
Run Code Online (Sandbox Code Playgroud)

通常,SequenceMatcher仅将[1]识别为l1和l2的公共子序列.

我想SequnceMatcher被两次字符串实例应用,以便"Foo""Fo"作为将被视为相等,以及"Bar""Bak",与最长公共子序列将是长度为3的[1, Foo/Fo, Bar/Bak].也就是说,在比较字符串成员时,我希望SequenceMatcher 更宽容.

我尝试做的是为内置的str类编写一个包装器:

from difflib import SequenceMatcher
class myString:
    def __init__(self, string):
        self.string = string
    def __hash__(self):
        return hash(self.string)
    def __eq__(self, other):
        return SequenceMatcher(a=self.string, b=self.string).ratio() > 0.5
Run Code Online (Sandbox Code Playgroud)

编辑:也许更优雅的方式是:

class myString(str):
    def __eq__(self, other):
        return SequenceMatcher(a=self, b=other).ratio() > 0.5
Run Code Online (Sandbox Code Playgroud)

通过这样做,可以实现以下目标:

>>> Foo = myString("Foo")
>>> Fo = myString("Fo")
>>> …
Run Code Online (Sandbox Code Playgroud)

python difflib sequencematcher

7
推荐指数
1
解决办法
1256
查看次数

Python 单元测试,测试用例前的语句

想象一下,我有这样的测试:

import unittest

class MyTests(unittest.TestCase):

  print("Starting")

  def test_first(self):
    .....
Run Code Online (Sandbox Code Playgroud)

print语句是否保证test_first()在其余部分之前执行?从我所看到的,它确实首先被执行,但是有没有边缘情况?

python unit-testing python-unittest

6
推荐指数
1
解决办法
1969
查看次数

如何获得"subsoups"并连接/加入它们?

我有一个我需要处理的HTML文档.我正在使用'beautifoulsoup'.现在我想从该文档中检索一些"subsoups"并将它们加入一个汤中,以便稍后我可以将它用作期望汤对象的函数的参数.

如果不清楚,我会给你一个例子......

from bs4 import BeautifulSoup

my_document = """
<html>
<body>

<h1>Some Heading</h1>

<div id="first">
<p>A paragraph.</p>
<a href="another_doc.html">A link</a>
<p>A paragraph.</p>
</div>

<div id="second">
<p>A paragraph.</p>
<p>A paragraph.</p>
</div>

<div id="third">
<p>A paragraph.</p>
<a href="another_doc.html">A link</a>
<a href="yet_another_doc.html">A link</a>
</div>

<p id="loner">A paragraph.</p>

</body>
</html>
"""

soup = BeautifulSoup(my_document)

# find the needed parts
first = soup.find("div", {"id": "first"})
third = soup.find("div", {"id": "third"})
loner = soup.find("p", {"id": "loner"})
subsoups = [first, third, loner]

# create a new (sub)soup …
Run Code Online (Sandbox Code Playgroud)

html python beautifulsoup html-parsing

6
推荐指数
1
解决办法
1264
查看次数

可以通过Poetry下载NLTK数据吗?

我正在构建一个同时使用 NLTK 和 Spacy 的应用程序,并通过 Poetry 管理依赖项。我可以通过将此行添加到我的pyproject.toml下面来下载 Spacy 数据[tool.poetry.dependencies]

en_core_web_sm = { url = "https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.5/en_core_web_sm-2.2.5.tar.gz" }
Run Code Online (Sandbox Code Playgroud)

是否可以对 NLTK 数据执行类似的操作?我宁愿将其全部指定在一个地方,而不是将其作为某些安装脚本的一部分下载

nltk python-poetry

6
推荐指数
1
解决办法
4114
查看次数

为什么服务器不允许 HTTP HEAD?

我发现有些服务器以 HTTP 405 响应请求HEAD(或另一个状态代码,包括 404,这在 IMO 中令人困惑,但这现在并不重要),即使GET请求以 HTTP 200 响应。HTTP 405定义为...

405 不允许的方法

Request-URI 标识的资源不允许使用 Request-Line 中指定的方法。响应必须包含一个允许标头,其中包含所请求资源的有效方法列表。

好吧,我查看了Allow标题,发现我可以用来GET获取资源(尽管我只想知道资源是否存在)。问题解决了。

但是,我的问题是......为什么服务器会不允许该HEAD方法?优点是什么?是否有可能的安全原因?

webserver http http-head

5
推荐指数
1
解决办法
3568
查看次数

Python:'{:,}'.format()为什么会这样?

代码组中有一个kata,其任务是编写一个函数,该函数在输入中获取整数并输出货币格式的字符串.例如123456- > "123,456".

我有一个解决方案,但它比这个字符串格式更丑:

def to_currency(price):
  return '{:,}'.format(price)
Run Code Online (Sandbox Code Playgroud)

我已经阅读了文档,但我仍然不知道这是如何工作的?

python string string-formatting

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

测试两个列表是否相等

我正在尝试为我的Django应用程序编写测试,我需要多次检查2个列表是否具有相同的对象(即A中的每个对象也在B中,反之亦然).

我读了assertLists/Sequence/Equal等但是对于我看到的如果列表具有相同的对象但是以不同的顺序(A = [a,b,c], B = [b,c,a])然后它返回一个错误,我不希望它是一个错误,因为它们都有相同的对象.

有没有办法在不循环列表的情况下检查这个?

python django unit-testing

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

压缩后如何删除django迁移?

Django文档说,我们可以在压缩迁移后删除它们:

您应该进行此迁移,但将旧迁移保留在原位置;新的迁移将用于新安装。一旦确定代码库的所有实例都应用了压缩的迁移,就可以删除它们。

在这里,删除是否意味着仅删除迁移文件或django_migrations表中的条目?

这里是一些背景:我只有开发机器,所以只有一个代码库。压缩一些已经应用的迁移后,我删除了文件和数据库条目。通过进行迁移测试是否可以,它没有找到任何东西。因此,一切看起来都不错。第二天,我不得不进行一些更改,并进行了迁移。当我尝试迁移时,它也尝试应用压缩的迁移(在压缩之前已部分应用)。因此,我不得不返回并在django_migrations表中重新创建条目。因此,似乎我不得不保留数据库条目。我试图确保在再次弄乱任何东西之前,先弄清楚为什么它看起来不错,然后再尝试应用压缩后的迁移。

migration django squash django-migrations

4
推荐指数
1
解决办法
2321
查看次数

在Python单元测试中是否存在子列表的断言?

对于Python 2.7:

list1 = [1, 2]

self.assertIn(1, list1)
self.assertIn(2, list1)
Run Code Online (Sandbox Code Playgroud)

有没有办法让我更轻松?就像是:

self.assertIn((1,2), list1)  # I know this is wrong, just an example
Run Code Online (Sandbox Code Playgroud)

python python-2.7 python-unittest

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