Python CSV输出未正确保存结果
Python初学者在这里向开发者寻求一些指导。我在将输出保存到CSV文件时遇到问题,当前输出没有保存所有数据,并且没有正确计算CSV中的每个行ID(0、1、2、3等)。有什么建议吗 当前代码:Python CSV输出未正确保存结果,python,csv,Python,Csv,Python初学者在这里向开发者寻求一些指导。我在将输出保存到CSV文件时遇到问题,当前输出没有保存所有数据,并且没有正确计算CSV中的每个行ID(0、1、2、3等)。有什么建议吗 当前代码: def get_length(file_path): with open("data.csv", "r") as csvfile: reader = csv.reader(csvfile) reader_list = list
def get_length(file_path):
with open("data.csv", "r") as csvfile:
reader = csv.reader(csvfile)
reader_list = list(reader)
return len(reader_list)
def append_list(file_path,stock_status,stock_name,date_time):
fieldnames = ['id','stock status','stock name','date/time']
next_id = get_length(file_path)
with open(file_path, "a+") as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writerow({
"id": next_id,
"stock status": stock_status,
"stock name": stock_name,
"date/time": date_time,
})
def check_add_cart():
try:
browser.find_element_by_xpath('//button[normalize-space()="Add to Cart"]')
except NoSuchElementException:
return False
return True
cycle = 2
with open('url.txt', 'r') as f:
url_list = [line.strip() for line in f]
for i in range(cycle):
for url in url_list:
browser.get(url)
time.sleep(6)
if check_add_cart():
append_list("data.csv", "In-Stock =)", browser.title, now.strftime('%Y-%m-%d %H:%M:%S'))
elif not check_add_cart():
append_list("data.csv", "Out-Of-Stock =(", browser.title, now.strftime('%Y-%m-%d %H:%M:%S'))
else:
print('Error')
browser.close()
当前CSV输出:
0,Out-Of-Stock =(,Sony PlayStation 5 Console,2021-06-05 17:45:01
2,Out-Of-Stock =(,Sony PlayStation 5 Console,2021-06-05 17:45:01
0,Out-Of-Stock =(,Sony PlayStation 5 Console,2021-06-05 17:45:00
1,In-Stock =),AMD Ryzen 5 5600x 4th Gen 6 Core 12 Threads,2021-06-05 17:45:01
2,Out-of-Stock =(,EVGA Geforce Rtx 3080 XC3,2021-06-05 17:45:02
3,Out-Of-Stock =(,Gigabyte Nvidia Geforce RTX 3080,2021-06-05 17:45:03
所需的CSV输出:
0,Out-Of-Stock =(,Sony PlayStation 5 Console,2021-06-05 17:45:01
2,Out-Of-Stock =(,Sony PlayStation 5 Console,2021-06-05 17:45:01
0,Out-Of-Stock =(,Sony PlayStation 5 Console,2021-06-05 17:45:00
1,In-Stock =),AMD Ryzen 5 5600x 4th Gen 6 Core 12 Threads,2021-06-05 17:45:01
2,Out-of-Stock =(,EVGA Geforce Rtx 3080 XC3,2021-06-05 17:45:02
3,Out-Of-Stock =(,Gigabyte Nvidia Geforce RTX 3080,2021-06-05 17:45:03
你为什么要做两个周期 我认为错误在于
if check_add_cart():
append_list("data.csv", "In-Stock =)", browser.title, now.strftime('%Y-%m-%d %H:%M:%S'))
elif not check_add_cart():
append_list("data.csv", "Out-Of-Stock =(", browser.title, now.strftime('%Y-%m-%d %H:%M:%S'))
else:
print('Error')
应缩进url\u列表中url的
循环中:
循环,否则对于列表的最后一个url,每个循环只执行一次。是否调用了else打印(“错误”)?否,它未在终端上打印更改为:打开(文件路径,“a+”,换行=“”)作为csvfile:
这将删除多余的空行,并可能有助于执行get_length()
例程。理想情况下,这不应该算空白行。此外,提供一个帮助回答。因为我们没有输入CSV文件,所以无法运行脚本来重现问题,并检查解决方案是否正确。