如何告诉Python脚本在运行后关闭

如何告诉Python脚本在运行后关闭,python,selenium-webdriver,Python,Selenium Webdriver,我是python的初学者。。。我写了一个简单的脚本,从一个网站中提取一些数据并保存到一个文本文件中,但在运行脚本后,它只是停留在那里,不会“终止”。因为我将作为windows任务运行它,所以我需要它在运行后自行关闭。有没有办法告诉python在脚本完成后关闭终端?我到处都看过了,似乎大多数人都在试图做相反的事情,在代码运行后保持它的打开状态。 不确定这是否重要,但我只是在运行.py文件,而不是在VS或PyCharm中。提前谢谢 from selenium import webdriver fro

我是python的初学者。。。我写了一个简单的脚本,从一个网站中提取一些数据并保存到一个文本文件中,但在运行脚本后,它只是停留在那里,不会“终止”。因为我将作为windows任务运行它,所以我需要它在运行后自行关闭。有没有办法告诉python在脚本完成后关闭终端?我到处都看过了,似乎大多数人都在试图做相反的事情,在代码运行后保持它的打开状态。 不确定这是否重要,但我只是在运行.py文件,而不是在VS或PyCharm中。提前谢谢

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from datetime import date




driver = webdriver.Chrome()
driver.get("MyURL")
time.sleep(11)
first = driver.find_element_by_xpath('/html/body/main/div[2]/div/div/div/div[2]/div[1]/div/div[2]/div[2]/div/ul/table/tbody/tr[3]/td[2]/div/span[1]')
second = driver.find_element_by_xpath('/html/body/main/div[2]/div/div/div/div[2]/div[1]/div/div[2]/div[2]/div/ul/table/tbody/tr[2]/td[2]/div/span[1]')
third = driver.find_element_by_xpath('/html/body/main/div[2]/div/div/div/div[2]/div[1]/div/div[2]/div[2]/div/ul/table/tbody/tr[1]/td[2]/div/span[1]')

first = first.text
second = second.text
third = third.text

print(first, second, third)

today = date.today()
today1 = today.strftime('%b %d %Y')

list = (today1, first, second, third)
print(list)

file = open('test.txt', 'a')
file.write(today1)
file.write(' ')
file.write(first)
file.write(' ')
file.write(second)
file.write(' ')
file.write(third)
file.write('\n')
file.close()


driver.close()

1。您需要将正在运行的进程发送到后台,并从当前shell中删除关联的作业

Ctrl
+
Z
并键入
bg
将安装过程发送到后台 然后键入
disown

现在可以关闭终端,进程仍将处于活动状态。您可以打开另一个终端并使用
ps-aef

在我的例子中,进程id是
14426
。不幸的是,没有简单的方法将其重新连接到另一个终端(请参见如何将终端连接到分离的进程?),除非您使用了基于
屏幕的内容

两个人。可以使用以下命令:

whilekill-01426>/dev/null 2>&1;做睡眠5;完成;回显“ok”
当过程从另一个终端结束时,它将打印
ok
。当然,您可以使用更复杂的内容更改此
echo
命令


来源:

好的,我发现了一些有效的方法。我注意到chromedriver进程即使在执行了行
driver.close()
之后仍在运行。我继续并终止了进程,脚本立即关闭。我猜
driver.close()
会关闭chrome窗口,但没有杀死chromedriver,因此脚本挂起等待进程退出。我用
driver.quit()
替换了
driver.close()
,现在脚本在运行后关闭。谢谢大家的帮助

当您说“正在运行.py”文件时,您的意思是从Windows资源管理器中双击该文件并运行它吗?这可能意味着您让“pylauncher”运行它,这将保持窗口打开-但这实际上取决于您的计算机上配置了什么程序来运行.py文件。您的代码似乎没有问题-它会终止,从那里它无法关闭窗口。我不知道为什么终端会保持打开状态,但您可以调用
exit()
终止脚本。是终端还是保持打开状态的chrome浏览器?还是将其从
.py
重命名为
.pyd
您是否尝试将其作为windows任务运行?终端窗口可能只是因为您在GUI中运行它的方式而存在。由于脚本在最后退出,我看不出这有什么帮助。