私信  •  关注

Ralf

Ralf 最近创建的主题
Ralf 最近回复了
5 年前
回复了 Ralf 创建的主题 » Csv排序和删除python

首先你必须定义平等的条件。例如,只有满足这两个条件时,以下代码才会将行视为相等:

  • 两个参与地址(ip和post一起)都是相同的;我使用 frozenset
  • 信息是一样的。

冰冻 (一个内置的不可修改的集合)为每一行构建密钥,以在 seen

with open('alerts.csv','r') as in_file, open('alertsfix.csv','w') as out_file:
    seen = set()
    for line in in_file:
        line = line.strip()
        if len(line) > 0:
            src_ip, src_port, dst_ip, dst_port, msg = line.split(',')
            src = '{}:{}'.format(src_ip, src_port)
            dst = '{}:{}'.format(dst_ip, dst_port)
            key = frozenset([
                frozenset([src, dst]),
                msg,
            ])

            if key not in seen:
                seen.add(key)         # we add 'key' to the set
                out_file.write(line)  # we write 'line' to the new file

这有助于你完成任务吗?

5 年前
回复了 Ralf 创建的主题 » 用变量和数据库数据填充Django模板?

也许有可能有一个称为 Concept (这可以是术语、短语、标题或类似的东西)使用类似的相关模型 ConceptDetail (可以是一系列术语或短语等)。

然后,您有一个URL配置,但是不同的概念有不同的pk,这些pk出现在URL中以区分它们(您还可以将URL中的slug用作kwargs以使URL更具可读性)。例如:

path('concept/', ConceptListView.as_view()),
path('concept/<slug:concept_name>/', ConceptDetailView.as_view()),

对于视图和模板,您有一个 ListView 它向您展示了所有概念(在这里您可以添加筛选和其他搜索选项),然后在 DetailView

这听起来像是能帮到你的吗?

5 年前
回复了 Ralf 创建的主题 » 使用python生成1d数组表单txt文件

如果我理解正确,您需要将整个文件中的所有元素放在一个数组中。

with open(filename) as f:
    numbers = [
        e
        for line in f
        for e in line.strip().split(',')]

int_arr = np.asarray(numbers, dtype=int)

之后我们有:

>>> print(int_arr)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
5 年前
回复了 Ralf 创建的主题 » Django查询链接多个筛选器

tz.now() 而不是 date.today() USE_TZ = True (默认值)。 见 django docs .

import datetime
from django.utils import timezone as tz

today = tz.localtime(tz.now()).date()
start_date = today - datetime.timedelta(days=30)
end_date = today

schedules = Schedule.objects.exclude(tournament__bias=0.0) \
    .filter(sport=sport, date__gte=start_date, date__lte=end_date) \
    .order_by("date")

我不认为自由党 https://github.com/mitsuhiko/python-geoip 将工作在 Python 3.x .

我查看了github中的源代码;5年没有更新,它仍然使用 Python 2.x 构造(如 xrange() 在里面 this line geoip.py#L255 )那是行不通的 Python 3 x (也许你很幸运,你的代码没有用旧结构调用代码的各个部分,但我不会屏住呼吸)。

看来你必须复制回购协议并使之适应 3.x 你自己或寻找其他选择。

5 年前
回复了 Ralf 创建的主题 » 每次编写复杂的程序时,有必要在python中使用类吗

创建自己的类是可选的,您可以使用just函数编写整个应用程序,而不必自己定义任何类。

但是,随着应用程序越来越大,类通常在封装逻辑和提高代码可读性方面具有优势。但不,它们不是强制性的。

5 年前
回复了 Ralf 创建的主题 » python中的简单monte carlo模拟

通过使用 set 而不是一个列表,还可以更改迭代逻辑:

import random

def roll_till_all_sides_appeared():
    sides_seen = set()
    n = 0

    while len(sides_seen) < 6:
        side = random.randint(1, 6)
        sides_seen.add(side)         # will only be added if it isn't present
        n += 1

    return n

def test(repetitions):
    max_n = float('-inf')
    min_n = float('inf')
    sum_n = 0

    for _ in range(repetitions):
        n = roll_till_all_sides_appeared()
        max_n = max(max_n, n)
        min_n = min(min_n, n)
        sum_n += n

    print('max:', max_n)
    print('min:', min_n)
    print('avg:', sum_n / repetitions)

此代码可以如下使用:

>>> test(10)
max: 32
min: 8
avg: 14.3
>>> test(100)
max: 45
min: 6
avg: 14.13
>>> test(1000)
max: 56
min: 6
avg: 14.749
>>> test(10000)
max: 62
min: 6
avg: 14.6422
5 年前
回复了 Ralf 创建的主题 » 修改变量时出现bash脚本错误的git别名

一个不同的解决方案。这不使用别名,而是使用脚本。

在路径中创建一个名为 git-auto-message (没有分机!)内容如下:

#!/bin/bash

#current_branch="feature/ACD-1706_new-api-call"
current_branch="$(git rev-parse --abbrev-ref HEAD)"
no_feature=${current_branch##*/}
no_underscore=${no_feature%%_*}

read -p "Complete commit message (empty cancels) \"$no_underscore | " msg
echo
# remove leading whitespaces
msg="${msg#"${msg%%[![:space:]]*}"}"
# remove trailing whitespaces
msg="${msg%"${msg##*[![:space:]]}"}"
if [ -n "$msg" ]; then
    git commit -m "$no_underscore | $msg"
fi

使脚本可执行。

然后你可以打电话 git auto-message . git意识到,它没有一个名为 auto-message 而且这个名字没有别名。所以它在路径中搜索一个名为 Git自动消息 . 所以脚本被执行。

虽然别名对于较小的事情很好,但是这个特性允许创建相当复杂的功能。


更新的脚本,正如我所错过的,你想添加额外的文本。

5 年前
回复了 Ralf 创建的主题 » 如何在python中读取csv文件?

我建议您遵循python文档中的示例 csv module :

import csv
with open('CityPop.csv') as f:
    csv_reader = csv.reader(f, delimiter=', ')
    for row in csv_reader:
        print ', '.join(row)

分析代码时,有几个问题:

  1. 你不需要打电话 f.close() 如果你使用 with 语句,退出时将自动关闭文件。 具有
  2. 你的打印报表应该放在 具有 块,作为变量 read_data 是在里面定义的
  3. 你需要迭代 读取数据 ( for line in read_data: ),因为你已经用过 f.read() 所以迭代 f 不会屈服的
  4. 你正在覆盖 record 每次,我都不知道你为什么要这样
5 年前
回复了 Ralf 创建的主题 » 外部数据库连接上的Django操作错误

我有点生疏了 mysql 连接,但如中所述 this answer :

默认禁用的是远程 root 访问。如果要启用它,请运行此SQL[…]

也许你可以先检查一下,排除这种错误配置。 或者尝试其他用户 .