gpt4 book ai didi

python - 调度程序使 python 脚本运行但不生成 csv 文件

转载 作者:可可西里 更新时间:2023-11-01 11:23:30 26 4
gpt4 key购买 nike

我用 python 编写了一个脚本,用于从网页中抓取一些链接并将它们写入 csv 文件。当从 IDE 运行时,我的脚本以正确的方式执行此操作。

当我使用 windows task scheduler 运行相同的程序时,我可以看到 命令提示符 弹出,脚本运行并在那里打印结果,但我没有任务完成后不会得到任何 csv 文件。

我错过了什么吗?

当脚本通过 windows task scheduler 中的 .bat 文件运行时,我应该进行哪些可能的更改以获取 csv 文件?

.bat 包含:

@echo off
"C:\Users\WCS\AppData\Local\Programs\Python\Python36-32\python.exe" "C:\Users\WCS\AppData\Local\Programs\Python\Python36-32\examplescript.py"

examplescript.py 包含:

import csv
import requests
from urllib.parse import urljoin
from bs4 import BeautifulSoup

url = "https://www.janglo.net/component/option,com_sobi2/"

def get_info(link):
res = requests.get(url)
soup = BeautifulSoup(res.text,"lxml")
for items in soup.select("#sobi2CatListSymbols .sobi2SubcatsListItems a[title]"):
if items.text=="Tutors":
ilink = f"{urljoin(url,items.get('href'))}"
return ilink

def get_links(tlink):
linklist = []
res = requests.get(tlink)
soup = BeautifulSoup(res.text,"lxml")
for item in soup.select(".sobi2ItemTitle a"):
linklist.append(urljoin(url,item.get("href")))
return linklist

if __name__ == '__main__':
with open("task_scheduler.csv","a",newline="") as infile:
writer = csv.writer(infile)
item = get_info(url)
for nlink in get_links(item):
print(nlink)
writer.writerow([nlink])

我已经在下面明确指定了“.bat”文件的位置:

"C:\Users\WCS\AppData\Local\Programs\Python\Python36-32\test_schedule.bat"

enter image description here

最佳答案

您的代码写入当前工作目录,因为它打开了一个没有路径的文件名。 .bat 文件的位置不确定正在运行的代码的当前工作目录

您没有指定工作目录;我希望使用调度程序中的 Start in 字段进行设置,因此文件是在 default location 中创建的, %Windir%\System32\

或者在 Start in 字段中为要创建的 CSV 文件设置一个目录,让您的批处理脚本使用 cd 将当前工作目录移动到右侧位置,或在打开文件时使用绝对路径。

例如,如果您的批处理脚本首先运行 cd /d %~dp0然后工作目录更改为批处理脚本的目录,Python 中的相对路径根据该位置进行解析。

关于python - 调度程序使 python 脚本运行但不生成 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53580917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com