如何将一个python脚本的输出作为另一个python脚本的用户输入

时间:2016-09-25 16:10:14

标签: python python-2.7 windows-10

我编写了一个代码(python 2.7),它转到了一个网站Cricket score,然后从中取出一些数据来显示它的分数。它还会定期重复并继续运行,因为分数不断变化。 我还编写了一个代码,用于从用户那里获取消息输入,并将该消息作为短信发送到我的号码。

我想将这两个分开,以便我的屏幕上打印的分数作为向我发送实时分数的消息输入。

代码

sms.py

    import urllib2
    import cookielib
    from getpass import getpass
    import sys
    import os
    from stat import *
    import sched, time
    import requests
    from bs4 import BeautifulSoup
    s = sched.scheduler(time.time, time.sleep)
    from urllib2 import Request
    #from livematch import function

    #this sends the desired input message to my number


    number = raw_input('enter number you want to message:  ')
    message = raw_input('enter text: ' ) 


    #this declares my credentials
    if __name__ == "__main__":    
        username = "9876543210"
        passwd = "abcdefghij"

        message = "+".join(message.split(' '))

     #logging into the sms site
        url ='http://site24.way2sms.com/Login1.action?'
        data = 'username='+username+'&password='+passwd+'&Submit=Sign+in'

     #For cookies

        cj= cookielib.CookieJar()
        opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

     #Adding header details
        opener.addheaders=[('User-Agent','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120')]
        try:
            usock =opener.open(url, data)
       except IOError:
            print "error"
            #return()

        jession_id =str(cj).split('~')[1].split(' ')[0]
        send_sms_url = 'http://site24.way2sms.com/smstoss.action?'
        send_sms_data = 'ssaction=ss&Token='+jession_id+'&mobile='+number+'&message='+message+'&msgLen=136'
        opener.addheaders=[('Referer', 'http://site25.way2sms.com/sendSMS?Token='+jession_id)]
        try:
            sms_sent_page = opener.open(send_sms_url,send_sms_data)
        except IOError:
            print "error"
            #return()

        print "success" 
        #return ()    

livematch.py​​

    import sched, time
    import requests
    from bs4 import BeautifulSoup
    s = sched.scheduler(time.time, time.sleep)
    from urllib2 import Request

    url=raw_input('enter the desired score card url here :  ')
    req=Request(url)
    def do_something(sc) : 
        #global x
        r=requests.get(url)
        soup=BeautifulSoup(r.content)
        for i in soup.find_all("div",{"id":"innings_1"}):
          x=i.text.find('Batsman')
          in_1=i.text
          print(in_1[0:x])
        for i in soup.find_all("div",{"id":"innings_2"}):
          x=i.text.find('Batsman')
          in_1=i.text
          print(in_1[0:x])
        for i in soup.find_all("div",{"id":"innings_3"}):
          x=i.text.find('Batsman')
          in_1=i.text
          print(in_1[0:x])
        for i in soup.find_all("div",{"id":"innings_4"}):
          x=i.text.find('Batsman')
          in_1=i.text
          print(in_1[0:x])
        # do your stuff
            #do what ever 
        s.enter(5, 1, do_something, (sc,))

    s.enter(5, 1, do_something, (s,))
    s.run()

请注意,不要将9876543210用作用户名,而使用abcdefghij作为密码,请使用实际帐户的凭据。

在way2sms.com注册以获取这些凭据

2 个答案:

答案 0 :(得分:0)

如果你想通过你的python脚本调用一个完全独立的python脚本,请看一下subprocess模块。您可以使用subprocess.callsubprocess.Popen

答案 1 :(得分:0)

如果不查看代码,很难回答。但似乎使用带有子流程的管道将是一个合适的解决方案。

请参阅此帖子的答案:python subprocess.stdout.readline doesn't