写入文件前的唯一字符串 - python

时间:2016-05-29 20:12:10

标签: python

为什么这不起作用?我想在将其写入文件之前从Rest api获得的结果是唯一的 -

MISP_HOST="https://192.168.1.8"
API_KEY="asdfasdfas"
EXPORT_DATA="attributes/text/download/md5"
OUTPUT_FILE="md5-"+today

def main():
    URL="%s/%s" % (MISP_HOST, EXPORT_DATA)
    request = urllib2.Request(URL)
    f = open(OUTPUT_FILE,'w') 
    request.add_header('Authorization', API_KEY)
    data = urllib2.urlopen(request).read()
    set(data)
    print type(data)
    f.write(data)
    f.close()

它没有错误,但数据肯定不是唯一的。我试图不在bash中这样做。你能解释为什么它也不起作用吗?非常感谢!!!

1 个答案:

答案 0 :(得分:2)

如果结果是纯文本,则可以使用正则表达式查找文本中的所有单词,然后从那里构建一个集合。这个例子也减少了单词的大小写,使得集合不区分大小写,并将每个单词写在自己的行上。

import re

MISP_HOST="https://192.168.1.8"
API_KEY="asdfasdfas"
EXPORT_DATA="attributes/text/download/md5"
OUTPUT_FILE="md5-"+today
def main():
    URL="%s/%s" % (MISP_HOST, EXPORT_DATA)
    request = urllib2.Request(URL)
    f = open(OUTPUT_FILE,'w') 
    request.add_header('Authorization', API_KEY)
    data = urllib2.urlopen(request).read()
    unique = set(word.lower() for word in re.findall(r'\w+', data))
    # that could be expanded to
    # wordlist = re.findall(r'\w+', data)
    # unique = set(word.lower() for word in wordlist)
    print type(unique)
    f.write('\n'.join(unique))
    f.close()