如何在python中为slack API消息的单个输出中获取所有字典值

2024-09-28 05:22:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用slackapi和python脚本将输出值发送到slack通道

我的字典值无法将单个输出及其循环逐个发送到post slack通道

它在每个循环输出值中创建一个新消息,所以如何获得单个输出消息

import glob
import time
import subprocess
from slacker  import Slacker
from datetime import datetime, timedelta
yesterday = datetime.now() - timedelta(days=3)
dates = yesterday.strftime('%y%m%d')
log_directory = "/Users/log-{}.csv".format(dates)
text_files = glob.glob("/Users/URL-{}.txt".format(dates))
for kk in text_files:
    slack_value = set()
    with open(kk, 'r') as f:
        mals = []
        pals = []
        for k in f:
            i = k.strip()
            pattern = ['malware']
            if any(name in i for name in pattern):
                if slack_value !='':
                    slack_value.add(i)

        for all_urls in sorted(slack_value):
            ss = all_urls
            patt = ['vol.com','www.vol.com']
            if any(rem not in ss for rem in patt):
                mals.append(ss)
        if mals:
            final_urls = []
            for mal_sp in mals:
                ma = mal_sp.split(' ')[0]
                pattern = ['vol.com']
                if any(name not in ma for name in pattern):
                    out = subprocess.check_output("cat {} | grep -v -e '407' | grep '{}' | uniq"
                                           .format(log_directory,ma),
                                           universal_newlines=True, shell=True)
                    pal = out.strip()
                    pals.append(pal)
            for key in mals:
                url_dict = {}
                for value in pals:
                    url_dict[key] = value
                    pals.remove(value)
                    break
            slack_token = Slacker("token")
            message = "{0} HTTP-accessURL \t:warning: pa malware Category :warning: \n{1} " \
                          "\n\n ```{2}``` ".format(dates,url_dict.keys(),url_dict.values())
            slack_token.chat.post_message('#ttest', message)
        else:
            exit()


Tags: nameinimportformaturlforifvalue

热门问题