【问题标题】:how to use external code python in python files如何在python文件中使用外部代码python
【发布时间】:2015-01-19 19:44:00
【问题描述】:

我的脚本获取标题标签并修改它并生成一个变量 我想在主要的python脚本上单独使用该脚本 在辅助脚本上,généraited 变量是

print (oname_cleanedup)

我想在我的脚本中使用这个变量

我的辅助脚本代码

# -*- coding: UTF-8 -*-
import subprocess
from bs4 import BeautifulSoup
import  requests
import  re
import sys

olinks = sys.argv[1]

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537)'}
session = requests.Session()
response = session.get(olinks, headers=headers)
soup = BeautifulSoup(response.content)
oname = soup.find("title")
if oname.text.find('Saison') >= 0:
    regexp = r'(.*?\s+-\s+S)aison\s+(\d+)\s+\xc9.*?(\d+)(.*)'
    subst = "{title} {season:02d} Ep {episode}"
else:
    regexp = r'(.*?\s+-)(\s+)\xc9.*?(\d+)(.*)'
    subst = "{title} Ep {episode}"
oname_cleanedup = re.sub(regexp,
                         lambda m: subst.format(title=m.group(1), season=int(m.group(2)) if m.group(2).find(" ")==-1 else "", episode=m.group(3)),
                         oname.text)

print(oname_cleanedup)

对不起,我忘记了信息

我想导入我的脚本

  import sys
    sys.path.append('files/')
    from my script.py import my fonction

juste 如何在辅助脚本上定义我的函数

【问题讨论】:

  • 你试过导入吗?
  • 我忘记了我编辑过主题的信息
  • 我的辅助脚本是所需的功能,只是如何导入这个大脚本并获取变量对不起,我是新手

标签: python request web-scraping beautifulsoup subprocess


【解决方案1】:

如果你想将 args 传递给脚本,你可以使用 subprocess:

from subprocess import check_output

c = check_output(["python","my_script.py","http://stackoverflow.com/questions/28032363/how-to-use-external-code-python-in-python-files#28032363"])
print(c)
request - how to use external code python in python files - Stack Overflow 

如果你尝试from my_script import oname_cleanedup,你会得到一个错误,因为你没有提供任何参数。你也许应该把它全部放在一个函数中,并将 url 传递给那个函数,这样你就可以导入它了。

def function(olinks):
    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537)'}
    session = requests.Session()
    response = session.get(olinks, headers=headers)
    soup = BeautifulSoup(response.content)
    oname = soup.find("title")
    if oname.text.find('Saison') >= 0:
        regexp = r'(.*?\s+-\s+S)aison\s+(\d+)\s+\xc9.*?(\d+)(.*)'
        subst = "{title} {season:02d} Ep {episode}"
    else:
        regexp = r'(.*?\s+-)(\s+)\xc9.*?(\d+)(.*)'
        subst = "{title} Ep {episode}"
    return re.sub(regexp,lambda m: subst.format(title=m.group(1), season=int(m.group(2)) if m.group(2).find(" ")==-1 else "", episode=m.group(3)),oname.text)

然后:

 from myscript import function
 oname_cleanedup = function(url)

我怀疑 beautifulsoup 可以做很多你正在用你的正则表达式做的事情。

【讨论】:

  • 它有效 :) ty I have a suspicion that beautifulsoup can do a lot of what you are doing with your regex. 你是什么意思?
  • 我需要查看一个示例 url,但除其他外,您可以使用 re.compile 与 find 和 findall 等。此外,您不需要会话,只需使用 requests.get。
  • a url animedigitalnetwork.fr/video/assassination-classroom/… 我想取回标题并修改它然后使用他(它)
  • @hideyoshi,去喝杯咖啡。我稍后会用一些指针更新答案
  • 我没有消息?
猜你喜欢
  • 2019-10-22
  • 2016-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-03
  • 2012-02-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多