2016-05-20 1 views
0

Привет я пишу код, чтобы получить завиток ответ список веб-сайтаСохранение subprocess.call Данные Название переменной

Вот моя попытка

import requests 
import urllib 
import urllib2 
import os 
import subprocess 
f = open("subdomains.txt") 
line =f.readlines() 
i=0; 
while(i<100): 
    x=(line[i]).rstrip("\n") 
    def convert(url): 
     if url.startswith('http://www.'): 
      return 'http://' + url[len('http://www.'):] 
     if url.startswith('www.'): 
      return 'http://' + url[len('www.'):] 
     if not url.startswith('http://'): 
      return 'http://' + url 
     return url 
    print convert(x) 
    res = subprocess.call("curl -I " +convert(x),shell=True) 
    i=i+1 
    print "______________________" 
    w=open("output.txt".'a') 
    w.write(res) 
    w.close 

Если удалить последние 3 строки. Код работает эффективно, но часть для добавления данных в выходной файл выходит из строя. Кто-нибудь может предложить мне, как добавить данные subprocess.call в выходной файл? Ошибка, что я получаю получить после того, как работает мой код является

Traceback (most recent call last): 
    File "shashank01.py", line 24, in <module> 
    w.write(res) 
TypeError: expected a string or other character buffer object 
+0

Вы, вероятно, хотите 'subprocess.check_output' –

+0

С, что делает Ouput спасется, но если сайт не разрешает, то разрывы кода. Я хочу, чтобы код продолжался. Какие-либо предложения ? – shashank

+0

'proc = subprocess.Popen (..., stdout = subprocess.PIPE); out = proc.communicate() [0] ' –

ответ

1
f = open("output.txt",'a') 
subprocess.call("curl -I " +convert(x),shell=True,stdout=f) 
+0

работал как шарм. Большое спасибо :) – shashank

Смежные вопросы