代码之家  ›  专栏  ›  技术社区  ›  Chevady Ju

python导入并返回多个结果到主程序

  •  0
  • Chevady Ju  · 技术社区  · 7 年前

    这是我的测试小程序的一部分(将在以后使用)

    main.py

    import requests
    import re
    import os
    import random
    from bs4 import BeautifulSoup
    from flask import Flask, request, abort
    #from imgurpython import ImgurClient
    from argparse import ArgumentParser
    from linebot import (
        LineBotApi, WebhookHandler
    )
    from linebot.exceptions import (
        InvalidSignatureError
    )
    from linebot.models import *
    
    from apple_news import apple_newss
    
    a=input("plz:")
    
    if a == "applenews":
        content0 = apple_newss_content0
        content1 = apple_newss_content1
        content2 = apple_newss_content2
        print (content0)
        print (content1)
        print (content2)
    

    apple_news.py

    def apple_newss( apple_newss_content0, apple_newss_content1, apple_newss_content2):
    
        target_url = 'http://www.appledaily.com.tw/realtimenews/section/new/'
        print('Start parsing appleNews....')
        rs = requests.session()
        res = rs.get(target_url, verify=False)
        soup = BeautifulSoup(res.text, 'html.parser')
    
        list_links = [] # Create empty list
    
        for a in soup.select("div[class='abdominis rlby clearmen']")[0].findAll(href=True): # find links based on div
                if a['href']!= None and a['href'].startswith('https://'):
                        list_links.append(a['href']) #append to the list
                        print(a['href']) #Check links
    
    #for l in list_links: # print list to screen (2nd check)
    #    print(l)
    
    
        print("\n")
    
        random_list = [] #create random list if needed..
        random.shuffle(list_links) #random shuffle the list
        apple_newss_content0 = ''
        apple_newss_content1 = ''
        apple_newss_content2 = ''
        for i in range(3): # specify range (5 items in this instance)
            res = list_links.pop(random.randint(1, len(list_links))) # pop of each item randomly based on the size of the list
            random_list.append(res)
        #print(res)
        #print(random_list)
        print("\n")
        apple_newss_content0=random_list[0]
        apple_newss_content1=random_list[1]
        apple_newss_content2=random_list[2]
    

    apple_newss_content0 apple_newss_content1 apple_newss_content2 主.py (出于某种目的,它必须是单独的形式,实际上是3个链接)

    主.py 分别打印这3个

    谢谢!!!

    1 回复  |  直到 7 年前
        1
  •  0
  •   Tohmaxxx    7 年前

    如果我理解你的问题,你可以做简单的事

    def apple_newss():
        apple_newss_content0 = 0
        apple_newss_content1, apple_newss_content2 = 1, 2
        return apple_newss_content0, apple_newss_content1, apple_newss_content2
    

    然后在main.py中:

    content0, content1, content2 = apple_newss()
    

    如。

    >>> def apple_newss():
    ...     apple_newss_content0 = 0
    ...     apple_newss_content1, apple_newss_content2 = 1, 2
    ...     return apple_newss_content0, apple_newss_content1, apple_newss_content2
    ...
    >>> content0, content1, content2 = apple_newss()
    >>> content0, content1, content2
    (0, 1, 2)
    >>> print(content0)
    0
    >>> print(content1)
    1
    >>> print(content2)
    2