【发布时间】:2021-03-08 16:26:03
【问题描述】:
我正在尝试从命令行调用 python 脚本,如下所示:
python Browse_list.py "firefox" "https://www.n11.com/magaza/tozbitti?iw=motor"["&m=Aeg","&m=Arnica","&m=Bosch","&m =伊莱克斯","&m=飞利浦"] [1,1,1,1,1] [4,2,7,4,6] "&pg="
这是脚本文件:
import sys
import selenium
from selenium import webdriver
from time import sleep
import os
if sys.argv[1] == 'Chrome':
driver = webdriver.Chrome(executable_path=os.getcwd() + '\\chromedriver.exe')
elif sys.argv[1] == 'Firefox':
driver = webdriver.Firefox(executable_path=os.getcwd() + '\\geckodriver.exe')
elif sys.argv[1] == 'Microsoft Edge':
driver = webdriver.Edge(executable_path=os.getcwd() + '\\msedgedriver.exe')
elif sys.argv[1] == 'Opera':
driver = webdriver.Opera(executable_path=os.getcwd() + '\\operadriver.exe')
n = len(sys.argv[3])
s = sys.argv[3][1:n-1]
s = s.split(',')
a = sys.argv[4][1:n-1]
a = a.split(',')
A = [int(i) for i in a]
b = sys.argv[5][1:n-1]
b = b.split(',')
B = [int(i) for i in b]
for j in range(0, len(A)):
for i in range(A[j], B[j]):
driver.get(sys.argv[2]+s[j]+sys.argv[6]+str(i))
sleep(4)
#driver.quit()
我收到以下错误:
Traceback (most recent call last):
File "Browse_list.py", line 30, in <module>
A = [int(i) for i in a]
File "Browse_list.py", line 30, in <listcomp>
A = [int(i) for i in a]
ValueError: invalid literal for int() with base 10: '1,1,1,1,1]'
如何解析字符串数组并将其更改为整数数组?谢谢。
【问题讨论】:
-
您的错误消息清楚地表明您正在尝试将 '1,1,1,1,1]' 转换为 int... 在 a.split(',') 之后添加打印,您将看看你给循环和一个
-
我做了并解决了错误,谢谢。
-
在 Python 中,我们称它们为
lists,而不是arrays。 w3schools.com/python/python_lists.asp :)
标签: python arrays string command-line integer