【问题标题】:How can i take the output of one python script as user input for another python script如何将一个 python 脚本的输出作为另一个 python 脚本的用户输入
【发布时间】:2016-09-25 16:10:13
【问题描述】:

我编写了一个代码(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 上注册以获取这些凭据

【问题讨论】:

  • 您好,修改第一个程序以写入文件,而将第二个程序修改为从该文件读取。
  • 请贴出你写的代码。

标签: python python-2.7 windows-10


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    查看这篇文章的答案:python subprocess.stdout.readline doesn't

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多