我试图制作一个脚本,以在Tor浏览器中自动浏览URL,并在几秒钟后终止Windows上的进程。
实际上一切正常,python在我的URL.text文件中随机选择一行,并使用OS命令在Tor浏览器中将其打开,然后我添加了sleep.time
稍等片刻,然后终止了该过程,但是当我执行代码时它等待“ os.system”,直到我手动关闭浏览器。之后,其余代码将正常执行。
这是怎么了?我找不到。
为什么python在os.system
行上等待,直到我关闭浏览器?为什么自动执行sleep
命令后,它不执行os.system
?
import time
import subprocess
import os
import random
def random_line(afile):
line = next(afile)
for num, aline in enumerate(afile, 2):
if random.randrange(num): continue
line = aline
return line
i = 1
while i == 1:
with open("C:\\Users\\TPK\\PycharmProjects\\MyScripts\\venv\\urls.txt" , "r") as urlfile:
rndurl = random_line(urlfile)
tor = "\"C:\\Users\\TPK\\PycharmProjects\\MyScripts\\venv\\TorBrowser\\Start Tor Browser.lnk\" " + rndurl
os.system(tor)
time.sleep(5)
print ("after sleep")
os.system("taskkill /im firefox.exe")
答案 0 :(得分:0)
os.system
的工作方式是它不会产生在后台运行的新进程。而是等待命令完成运行,然后继续执行。对于您而言,关闭浏览器窗口时该过程完成。建议您不要使用subprocess.run
,而不要使用os.system
。无需等待该过程完成,它会生成它并使它在后台运行。请注意,您将需要在每个空格处分隔命令并将其放在列表中。像这样:subprocess.run(["C:\path\to\Start Tor Browser.lnk", "https://url.to.open"])