Python:从subprocess.Popen中逐行删除字符

时间:2015-10-05 18:59:00

标签: python subprocess string-formatting stdout

尝试从以下snippit的输出中删除字符:subprocess.Popen(cmd,shell=true,stdout=subprocess.PIPE)

长期我需要将输出拆分为单独的列表索引。尝试使用stdout输出来测试它,以验证它的工作优先。以下是代码的嗤之以法:

#!/usr/bin/env python3.4

import subprocess

def writefile():
  sites = ['blue.com', 'red.com']               
  for site in sites:
    proc = subprocess.Popen(["python dnstwist.py -g " + site + "| sed -e '1,8d' | grep -v -"],shell=True,stdout=subprocess.PIPE,universal_newlines=True)
    while True:
      line = proc.stdout.readline()
      if line!= '':
        print(line.strip('/'))
      else: 
        break

我也尝试过:

      line = proc.stdout.readline().strip('/')
      if line!= '':
        print(line)
      else: 
        break

输出总是看起来像这个样本。请注意,forwardlash没有被删除:

Replacement     4ed.com    212.48.70.37/United Kingdom MX:mail.4ed.com

Replacement     r4d.com    69.172.201.208/United States

它看起来像添加\ n或\ r。

Longterm我希望它可以解析为如下所示:

{'4ed.com': ['Replacement', '212.48.70.37', 'somewhoisdata', 'United Kingdom'] }

...等

0 个答案:

没有答案