小编ped*_*ram的帖子

如何在Python中停止循环线程?

告诉循环线程停止循环的正确方法是什么?

我有一个相当简单的程序,它在一个单独的threading.Thread类中ping指定的主机.在这个类中,它会休眠60秒,再次运行直到应用程序退出.

我想在我的实现一个'停止'按钮,wx.Frame要求循环线程停止.它不需要立即结束线程,它可以在唤醒后停止循环.

这是我的threading类(注意:我还没有实现循环,但它可能属于PingAssets中的run方法)

class PingAssets(threading.Thread):
    def __init__(self, threadNum, asset, window):
        threading.Thread.__init__(self)
        self.threadNum = threadNum
        self.window = window
        self.asset = asset

    def run(self):
        config = controller.getConfig()
        fmt = config['timefmt']
        start_time = datetime.now().strftime(fmt)
        try:
            if onlinecheck.check_status(self.asset):
                status = "online"
            else:
                status = "offline"
        except socket.gaierror:
            status = "an invalid asset tag."
        msg =("{}: {} is {}.   \n".format(start_time, self.asset, status))
        wx.CallAfter(self.window.Logger, msg)
Run Code Online (Sandbox Code Playgroud)

在我的wxPyhton框架中,我从"开始"按钮调用此函数:

def CheckAsset(self, asset):
        self.count += 1
        thread = PingAssets(self.count, asset, self)
        self.threads.append(thread)
        thread.start()
Run Code Online (Sandbox Code Playgroud)

python multithreading wxpython

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

正则表达式和OR运算符没有在Python中分组?

以下是案例.我在日志文件中寻找以下模式.

所有字符串都是AB_N或的形式CDE_N. AB并且CDE是固定字母,后面是下划线. N可以是2或3个数字.

我试过(AB|CDE)_\d{2,3}但是返回了一个组.我不能这样做,\w{2,3}\d{2,3}因为它必须是ABCDE不是ACFEG.省略括号也会中断.我确信解决方案很简单,但我是python和regex的新手,无法解决这个问题.

python regex regex-group

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

如何在第一个值相同的列表中对元组求和?

我有一个股票和头寸列表作为元组.买入为正,卖出为负.例:

p = [('AAPL', 50), ('AAPL', -50), ('RY', 100), ('RY', -43)]
Run Code Online (Sandbox Code Playgroud)

如何计算股票的头寸,以获得当前的持股?

result = [('AAPL', 0), ('RY', 57)]
Run Code Online (Sandbox Code Playgroud)

python

8
推荐指数
1
解决办法
1682
查看次数

使用wxPython从用户那里获取输入

假设我需要raw_input用wxPython对话框替换下面代码中的函数,该对话框要求用户输入并将值返回给程序:

...
x = raw_input("What's your name?")
print 'Your name was', x
...
Run Code Online (Sandbox Code Playgroud)

我只是在寻找一种简单的方法来做到这一点。谢谢

python wxpython user-input raw-input

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

如何控制R中函数的输出(类似于lm)

我在R中创建一个自定义函数,它将一些不同的变量作为输入,并创建一个data.frame,一个图和一些汇总统计数据,所有这些都存储在一个列表中.我只想在调用函数时打印出摘要统计信息,但在显式调用时可以使用plot和data.frame.

我认为我想要的是如何lm()操作,但我不确定它是如何实现的.

当我打印lm我返回的对象时,只得到打印输出$call$coefficients:

lm(mtcars$mpg ~ mtcars$cyl)

Call:
lm(formula = mtcars$mpg ~ mtcars$cyl)

Coefficients:
(Intercept)   mtcars$cyl  
     37.885       -2.876  
Run Code Online (Sandbox Code Playgroud)

但是在幕后显然,函数调用中有更多可用的东西lm.

lm(mtcars$mpg[1:3] ~ mtcars$cyl[1:3])$residuals
            1             2             3 
-1.280530e-15  1.280530e-15  8.365277e-31 

> unclass(lm(mtcars$mpg[1:3] ~ mtcars$cyl[1:3])

Call:
lm(formula = mtcars$mpg[1:3] ~ mtcars$cyl[1:3])

Coefficients:
    (Intercept)  mtcars$cyl[1:3]  
           26.4             -0.9  


> unclass(lm(mtcars$mpg[1:3] ~ mtcars$cyl[1:3]))
$coefficients
    (Intercept) mtcars$cyl[1:3] 
           26.4            -0.9 

$residuals
            1             2             3 
-1.280530e-15  1.280530e-15  8.365277e-31 

$effects
    (Intercept) mtcars$cyl[1:3]                 
  -3.741230e+01    1.469694e+00    1.810943e-15 

....

$call
lm(formula = mtcars$mpg[1:3] ~ …
Run Code Online (Sandbox Code Playgroud)

r

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

从 nginx try_files 中排除文件夹

我有两个位置由 nginx 提供服务。我希望所有/api/*路径都由 uwsgi 服务器提供,并且所有其他/路径由 index.html 提供服务。我正在使用 Vue Router,所以我也需要这个try_files $uri $uri/ /index.html;

这是我的完整配置,适用于 /,但不能正确排除 /api

server {
    listen       8080;
    location ^~ /api {
        include uwsgi_params;
        uwsgi_pass localhost:9000;
    }

    location / {
      root   /usr/share/nginx/html;
      index  index.html index.htm;

      location ~ ^(?!/api).+ { { # this doesn't work. i'm trying to ignore /api/* for the rule below.
        try_files $uri $uri/ /index.html;
      }
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

Run Code Online (Sandbox Code Playgroud)

nginx vue.js vue-router

5
推荐指数
0
解决办法
851
查看次数

将自定义函数应用于R中数据框中每一行的两列

我有一个DF看起来有点像这样的data.frame

category var1 var2 
apples    1    4
bananas   3    3
orange    4    1 
kiwis     2    3
Run Code Online (Sandbox Code Playgroud)

我还创建了一个简单的自定义函数,它根据两个参数生成输出:

annualize_fte <- function(tenure, amount)
{
    if (tenure==0) return(0)

    if (tenure>12) {
        result = amount
    } else {
        t_factor = 12 / tenure
        result = amount * t_factor
    }
    return(result)
}
Run Code Online (Sandbox Code Playgroud)

我想创建第三列var3,它是应用于annualize_fte(var1, var2)每一行的结果.

我尝试过以下操作并且失败了:

mutate(DF, var3=annualize_fte(var1, var2)) 
apply(DF, 1, annualize_fte, DF$var1, DF$var2)
Run Code Online (Sandbox Code Playgroud)

我在未使用的参数或条件长度> 1的错误周围出现错误.

r dataframe dplyr

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

需要针对单词列表在Teradata SQL中搜索文本字段并返回该单词

我正在大型数据库中搜索长度在5到7个字符之间的单词列表。到目前为止,我有:

Select *
  from sometable
 Where upper("Description") like any ("%ABC_123%", "%ABC_124%", "%DE_25%")
Run Code Online (Sandbox Code Playgroud)

我还想返回在查询中找到的单词,但是在不复制subtr函数中的单词列表的情况下,如何执行此操作会陷入困境。

这样做可能有更好的方法,我希望能有一些指导。

sql search text full-text-search teradata

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

如何根据data.frame中的变量引用列表?

我有一个简单的表emp_idjob_code.我想payout基于此返回正确的job_code

我用嵌套的ifelse管理了这个,但是如果我有更多job_code的话呢?

library(dplyr)
set.seed(1)

emp_id   <- round(rnorm(100, 500000, 10000))
job_code <- sample(c('a', 'b', 'c'), 100, replace = TRUE)
result   <- sample(c(1,2,3,4), 100, replace = TRUE)

df <- data.frame(emp_id = emp_id, job_code = job_code, result = result)

job_a <- c(0, 500, 1000, 5000)
job_b <- c(0, 200, 500, 750)
job_c <- c(0, 250, 750, 1000)

# Works but sucky
df %>% mutate(payout = ifelse(job_code == 'a', job_a[result],
  ifelse(job_code == 'b', job_b[result],
    job_c[result]))) …
Run Code Online (Sandbox Code Playgroud)

r

3
推荐指数
1
解决办法
322
查看次数

如何根据元组中的值删除列表中的元组?

我有一个元组列表.我想删除列表中的所有项目,其中在元组中的第二和第三项bananas1.for循环不起作用,因为它在迭代它时从列表中删除项目.不知道怎么回事?

my_table = [('apples', 'bananas', 1), ('pears', 'bananas', 1), ('grapes', 'apple', 2), ('apples,' 'pears', 2), ('apples', 'bananas', 2), ('grapes', 'bananas', 2)]

>>> printTable(my_table)
('apples', 'bananas', 1)
('pears', 'bananas', 1)
('grapes', 'apple', 2)
('apples,pears', 2)
('apples', 'bananas', 2)
('grapes', 'bananas', 2)

>>> for item, row in enumerate(my_table):
    if row[1] == 'bananas' and row[2] == 1:
        print item, row

0 ('pears', 'bananas', 1)
5 ('apples', 'bananas', 1)
6 ('grapes', 'bananas', 1)

>>> for item, row in enumerate(my_table):
    if …
Run Code Online (Sandbox Code Playgroud)

python tuples list

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