小编MrD*_*Duk的帖子

使用shutil.make_archive() 创建存档,同时排除一些路径

有没有办法shutil.make_archive排除一些子目录,或者,有没有办法通过shutil?

例子很有趣

/root
  /workingDir
      /dir1
      /dir2
          /dirA
          /dirB
      /dir3   
Run Code Online (Sandbox Code Playgroud)

假设我想从其中创建一个档案,workingDir其中包括dirA-之外的所有内容,我该怎么做?是否可以不编写遍历整个树的方法?

python archive shutil python-2.7

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

Slack API - 来自自定义机器人帖子的附件作为纯文本

我正在使用Python 2.7和python-slackclient.我有一个像这样的附件结构:

self.msg = {
    "attachments": [
        {
            "fallback": "%s, %s" % (self.jiraIssueObj.fields.summary, self.link),
            "pretext": "Detail summary for %s" % self.jiraIssueObj,
            "title": self.jiraIssueObj.fields.summary,
            "title_link": self.link,
            "text": self.jiraIssueObj.fields.description[0:self.maxSummary],
            "color": "#7CD197",
            "mrkdwn_in": ["text", "pretext", "fields"]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

然后,

def Send(self):
        if (self.msg):
            slack_client.api_call("chat.postMessage", channel=self.channel, text=self.msg, as_user=True)
            self.msg = None
Run Code Online (Sandbox Code Playgroud)

但是,当这个发布时,它只是发布明文,没有格式:

{"附件":[{"title":"将Grafana升级到3.0","颜色":"#7CD197","text":"嘿伙计们,我们已经添加了JIRA maillist所以这封电子邮件会创建一张票我们如果您不想回复此电子邮件并提供其他信息,请立即排队.\n \n\u\u00a \n \n \n\u \n \n \n \n \n \n:nSent:2016年8月25日星期四11 :41 AM \n","title_link":" https://jira.jr.com/browse/ops-164 ","mrkdwn_in":["text","pretext","fields"],"pretext" :"ops-164的详细摘要","后备":"将Grafana升级到3.0,https://jira.jr.com/browse/ops-164 "}}}

我究竟做错了什么?我试着这样做也是attachments=self.msgSend()打电话,但我在所有我的松弛渠道得不到任何输出这样做的时候.

python slack-api slack

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

为什么我的 Go 调试器不加载所有符号,导致调试器中缺少局部变量?

我已经建立了我的二进制,: go build -gcflags "$gc_flags" -o ./bin/grafana-server ./pkg/cmd/grafana-server,其中$gc_flags'-N -l'

当我./bin/grafana-server在调试器 (Goland) 中运行此文件并附加到它时,并未加载所有符号。此外,一些断点会显示以下消息:

/Users/.../file.go:186 没有代码

我想调试的代码如下:

在此处输入图片说明

添加到原始项目的部分是 lines 186-199。您可以看到执行已进入for _, ..循环(第 196 行),表明query有数据,并且我们能够使用它从数据库中query通过repo.Find(query). 但是,query在我的调试器中找不到:

在此处输入图片说明

所以我不确定此时发生了什么。不幸的是,我对 golang 真的很陌生;这让我很难取得任何进展。

debugging debug-symbols go delve goland

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

pymongo update_one(),upsert = True,不使用$运算符

我有以下形式的文件:

{"hostname": "myhost1.com", "services": { ... } }
Run Code Online (Sandbox Code Playgroud)

我想做的是以下内容:

dataset = requests.get('http://endpoint.com/hardware.json').json()
for hostname, services in dataset[0].items():
    db.titleHardware.update_one({'hostname':hostname},
                                {services.keys()[0]: services.values()[0]}, 
                                True) #upsert
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

ValueError:update仅适用于$运算符

有没有办法"services"根据"hostname"密钥完成整个块的更新(如果hostname不存在,最终插入新文档)?我知道我可以编写逻辑来比较我的MongoDB中的内容与我正在尝试更新/插入的内容,但我希望可能已经存在某些内容pymongo或者我可以使用的内容.

python mongodb pymongo python-2.7

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

如何访问Pharo 3.0中的Seaside控制面板?

Pharo By Example书中说通过Tools子菜单打开它 - 但我在Pharo 3.0中没有看到这一点

还有另外一种方法吗?

smalltalk seaside pharo

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

使用mmap()时,从'void*'到'char*'的转换无效

我有以下代码段:

char* filename;
unsigned long long int bytesToTransfer;
int fd, pagesize;
char *data;

fd = open(filename, O_RDONLY);
if (fd==NULL){
    fputs ("File error",stderr);
    exit (1);
}

cout << "File Open: " << filename << endl;

pagesize = getpagesize();
data = mmap((caddr_t)0, bytesToTransfer, PROT_READ, MAP_SHARED, fd, 0);
if (*data == -1) {
    fputs ("Memory error",stderr);
    exit (2);
}

cout << "Data to Send: " << data << endl;
Run Code Online (Sandbox Code Playgroud)

但是当我编译时,我会收到:

错误:从'void*'到'char*'的无效转换[-fpermissive] data = mmap((caddr_t)0,bytesToTransfer,PROT_READ,MAP_SHARED,fd,0);

有人能给我一个暗示什么是错的吗?

c++ parameters mmap void-pointers

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

你可以让 subprocesss.Popen 在 stdout/stderr 中保留颜色吗?

我有以下代码:

p = subprocess.Popen(cmd.split(' '), env=os.environ, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    while(True):
      log.info(p.stdout.readline())
      if(p.poll() is not None):
        break
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,除了它删除了所有发出的颜色。有没有办法保留这个?

python popen python-2.7

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

什么是 ECS 任务组以及如何创建?

这是我为 Task Group 找到的唯一文档,它没有解释如何或在哪里创建一个文档

我找不到任何文档可以通过如何创建和使用任务组的示例来充分解释任务组的实际含义。这听起来像是服务运行多个不同任务定义的一种方式,这对我很有用。

例如,我向任务定义添加了一个容器,并且该服务正在集群上平衡它的多个实例。但是我想与第一个容器一起部署另一个容器,但我只想运行它的一个实例。所以我不能将它添加到同一个任务定义中,因为我会创建它的多个实例并消耗不必要的资源。似乎这就是任务组的用途。

amazon-web-services amazon-ecs

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

如何在 Prometheus 中正确地将丢失的数据点转换为 0?

我们有一个警报,我们希望根据之前5m的指标(例如,如果它高于 0)触发。但是,如果指标是,0它不会写入普罗米修斯,因此不会在该时间段内返回。

结果是我们可能有一个示例数据集:

-60m  |  -57m  |  -21m  |  -9m  |  -3m    <<< Relative Time
   1  ,  0    ,    1    ,  0    ,  1      <<< Data Returned
Run Code Online (Sandbox Code Playgroud)

这最终导致每次指标高于0时触发警报,而不仅仅是当它高于05m。我已经尝试将我们的查询OR on() vector()添加到末尾,但它对返回的数据集做了一些有趣的事情:

values:Array[12]
 0:Array[1539021420,0.16666666666666666]
 1:Array[1539021480,0]
 2:Array[1539021540,0]
 3:Array[1539021600,0]
 4:Array[1539021660,0]
 5:Array[1539021720,0]
 6:Array[1539021780,0]
 7:Array[1539021840,0]
 8:Array[1539021900,0]
 9:Array[1539021960,0]
 10:Array[1539022020,0]
 11:Array[1539022080,0]
Run Code Online (Sandbox Code Playgroud)

出于某种原因,它将“真实”数据放在数组的前面(即使我的开始时间早于1539021420)并从该时间戳向前继续。

让 Prometheus 返回0可能不存在的数据点的正确方法是什么?

需要明确的是,这不是警报管理器的问题——我正在使用不同的工具来对这些数据发出警报。

time-series prometheus

6
推荐指数
0
解决办法
556
查看次数

了解单个目标迷宫的A*启发式算法

我有一个如下的迷宫:

||||||||||||||||||||||||||||||||||||
|                                 P|
| ||||||||||||||||||||||| |||||||| |
| ||   |   |      |||||||   ||     |
| || | | | | |||| ||||||||| || |||||
| || | | | |             || ||     |
| || | | | | | ||||  |||    |||||| |
| |  | | |   |    || ||||||||      |
| || | | |||||||| ||        || |||||
| || |   ||       ||||||||| ||     |
|    |||||| |||||||      || |||||| |
||||||      |       |||| || | …
Run Code Online (Sandbox Code Playgroud)

python artificial-intelligence heuristics a-star path-finding

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