首页 > 解决方案 > Python 2.7在一行上打印列表不起作用

问题描述

我已经尝试了此页面上的所有内容以及其他一些 Google 搜索,但我似乎无法使其正常工作。

注意*我查找了有关打印的帮助以测试来自 的输出outfile.write,但我仍然无法在测试中正确格式化它。

我的代码如下所示:

def ipfile():
    global ip_targets
    ip_target_file = raw_input('Place target file location here: ')
    try: ip_holder = open(ip_target_file,'r')
    except IOError:
        os.system('clear')
        print('Either I can\'t read that file, or it\'s not a file')
        os.system('sleep 3')
        return
    ip_targets = ip_holder.readlines()

def inbound_connections():   
    i = 0
    uri_ip_src = ''
    uri_ip_dst = ''
    while i < (len(ip_targets)):
        uri_ip_src_repeater = ('ip.src%3D%3D' + ip_targets[i])
        uri_ip_src = uri_ip_src + '||' + uri_ip_src_repeater
        uri_ip_dst_repeater = ('ip.dst%3D%3D' + ip_targets[i])
        uri_ip_dst = uri_ip_dst + '||' + uri_ip_dst_repeater
        i += 1          
    url = '&expression=' + "(" + (uri_ip_src[2:]) + ")" + "%26(" + (uri_ip_dst[2:]) + ")"
    #Write output to file functions
    outfile=open("jacobi_queries.txt","a")
    outfile.write("Same -> Same Connections " + str(datetime.datetime.now())[:16])
    outfile.write("\n")
    outfile.write(call_moloch + "/sessions?" + timestamp + url + "' 2>/dev/null &")
    outfile.write("\n")
    outfile.close()
    

代码有效(抱歉,我遗漏了一些来自其他函数的变量,但假设它们有效)但是,我的输出有换行符,我似乎找不到需要转换“uri_ip_src”和“uri_ip_dst”的位置" 使其在一行上输出。我的输出如下所示:

Same -> Same Connections 2018-06-05 05:30
nohup firefox 'localhost:8005/sessions?&date=6&expression=(ip.src%3D%3D10.0.2.15
||ip.src%3D%3D10.0.0.1
||ip.src%3D%3D127.0.0.1
)%26(ip.dst%3D%3D10.0.2.15
||ip.dst%3D%3D10.0.0.1
||ip.dst%3D%3D127.0.0.1
)' 2>/dev/null &

标签: pythonpython-2.7

解决方案


你的问题是:

ip_targets = ip_holder.readlines()

每行末尾都有一个换行符。在将其添加到uri_ip_src_repeater. 这应该有效:

ip_targets = [i.rstrip('\n') for i in ip_targets]

但是您也可以从源头干净利落地抓取它们,而不必在之后删除不需要的字符:

ip_targets = ip_holder.read().splitlines() 

推荐阅读