如何将python脚本的结果传递到命令行?

如何将python脚本的结果传递到命令行?,python,python-3.x,linux,subprocess,Python,Python 3.x,Linux,Subprocess,我已经编写了一个Python脚本,它收集了我想要下载的torrent的磁石链接 然后如何在命令行中将其传递给aria2c 这就是我到目前为止所尝试的,aria2c启动时好像会下载,但它不会下载一个字节。 我是一个彻头彻尾的傻瓜,所以我向你道歉,非常感谢你的帮助 from selenium import webdriver from selenium.webdriver.common.keys import Keys import time from pyYify import yify impo

我已经编写了一个Python脚本,它收集了我想要下载的torrent的磁石链接

然后如何在命令行中将其传递给aria2c

这就是我到目前为止所尝试的,aria2c启动时好像会下载,但它不会下载一个字节。 我是一个彻头彻尾的傻瓜,所以我向你道歉,非常感谢你的帮助

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from pyYify import yify
import os
import subprocess
driver = webdriver.Chrome()

driver.get('https://mypiratebay.net/')
searchbox = driver.find_element_by_xpath('//*[@id="home"]/main/section/form/div[1]/input')
searchbox.send_keys('Toy Story 4')
searchbox.send_keys(Keys.RETURN)
torrentlink = driver.find_element_by_xpath('//*[@id="st"]/span[2]/a')
time.sleep(3)
torrentlink.click()

for a in driver.find_elements_by_xpath('//*[@id="d"]/a'):
    magnetlink = (a.get_attribute('href'))
    magnetlink = str(magnetlink)

subprocess.call(['aria2c', magnetlink])

您可以尝试以下步骤:

在同一文件夹中打开命令提示符

键入python文件名

您的程序的输出出现了


您可以尝试以下步骤:

在同一文件夹中打开命令提示符

键入python文件名

您的程序的输出出现了


要回答您提出的问题,请至少部分回答:

您可以使用shell轻松获取单个输出,尽管我不确定这是否能满足您的需要。在macos上,使用bash:

test_181_cli.py:

test_181_cli.sh:

因此,您需要加载bash函数定义:

源代码测试_181_cli.sh可能是。改为在Linux下测试_181_cli.sh

然后运行它:

(venv38) myuser@explore$ runmystuff

ariac b:
(venv38) myuser@explore$ runmystuff

ariac c:
现在,由于ariac实际上不起作用,我怀疑将它传递到命令行是否会改善子流程,并且处理多个URL将变得更加困难


我建议您打印printf:{magnetlink}:注意有意使用的冒号-检查是否没有多余的空格,并适当设置格式。然后尝试手动运行aria2c。您可能会遇到各种各样的其他问题,而一旦有了正确的命令行,子流程可能不是问题的原因。此外,Daniel Walker的评论很贴切:您的子流程调用属于循环。

要回答您提出的问题,至少部分:

您可以使用shell轻松获取单个输出,尽管我不确定这是否能满足您的需要。在macos上,使用bash:

test_181_cli.py:

test_181_cli.sh:

因此,您需要加载bash函数定义:

源代码测试_181_cli.sh可能是。改为在Linux下测试_181_cli.sh

然后运行它:

(venv38) myuser@explore$ runmystuff

ariac b:
(venv38) myuser@explore$ runmystuff

ariac c:
现在,由于ariac实际上不起作用,我怀疑将它传递到命令行是否会改善子流程,并且处理多个URL将变得更加困难


我建议您打印printf:{magnetlink}:注意有意使用的冒号-检查是否没有多余的空格,并适当设置格式。然后尝试手动运行aria2c。您可能会遇到各种各样的其他问题,而一旦有了正确的命令行,子流程可能不是问题的原因。此外,Daniel Walker的评论很贴切:您的子流程调用属于循环。

subprocess.call应该在for循环中吗?尝试了两种方法。aria2c启动时好像要下载,但没有下载一个字节。这就是为什么如果可能的话,我宁愿将其传递到终端窗口。subprocess.call是否应该在for循环中?尝试了两种方法。aria2c启动时好像要下载,但没有下载一个字节。如果可能的话,这就是为什么我宁愿将其传递到终端窗口中的原因。您的答案并没有解决这个问题,即捕获Python脚本的输出并将其传递给另一个外部程序。按照您的步骤只允许以常规方式运行python脚本。您的答案没有解决问题,即捕获python脚本的输出并将其传递给另一个外部程序。按照您的步骤只允许以常规方式运行python脚本。
(venv38) myuser@explore$ runmystuff

ariac b:
(venv38) myuser@explore$ runmystuff

ariac c: