Python:如何将从文本文件读取的行输入到变量中

0 投票
1 回答
37 浏览
提问于 2025-04-14 16:32

我现在正在写一个Python脚本,目的是开发一个自动填写表单的机器人。目前我只在一个网站上测试,等我掌握了流程再说。现在我有两个选择。选择一是手动输入客户数据,然后脚本把这些数据放到一个变量里,用来通过send.keys命令填写网站上的表单。这部分运行得很好。

现在我的问题出在选择二上。我想从一个文本文件中读取每一行,把这些数据存储为内容。然后把每一行(比如content[0])赋值给一个变量,再用这个变量配合send.keys命令来自动填写表单。比如,我的文本文件里有这些数据:

John Doe
123 Test Street
Test City

我想逐行读取这些内容,并把它们分别赋值。第一行会被读取为content0,第二行为content1,第三行为content2,以此类推。

然后我会把这些值赋给一个变量。举个例子:

FirstName = (content[0])
Address = (content[1])
City = (content[2])

接下来,我的目标是把这些值用在send.keys命令里,这样我的机器人就能用对应的数据填入框中。

但我现在卡在这里。当脚本打开网页并开始自动填写时,框里什么都不显示。如果我像这样加上str,比如str content[0],那么框里填的就是“content[0]”这个字符串,而不是我赋给content的变量。以下是我的代码:

if inputchoice == '2':  

    file = open('info.txt', 'r')
    read_=file.read()

    Phoneinput = (content[0])
    FirstNameinput = (content[1])
    LastNameinput = (content[2])
    Addyinput = (content[3])
    Cityinput = (content[4])
    Stateinput = (content[5])
    Stateinput2 = (content[6])
    Zipinput = (content[7])
    Emailinput1 = (content[8])

web = webdriver.Chrome()
web.get('https://www.listyourself.net/ListYourself/listing.jsp')
time.sleep(2)

Phone1 = web.find_element("xpath",'/html/body/div/div[2]/div[2]/div[1]/form/div[1]/div[2]/input[1]')
Phone1.send_keys(str(Phoneinput))

1 个回答

1

这一行

read_=file.read()

是把文件的全部内容读进一个叫做 read 的变量里,内容的格式是一个 str 字符串。接着,你试图访问一个不存在的变量 contents,你以为 contents 是一个列表,里面的每个元素都是文件中的一行。要让你的这个想法成立,把 file.read 替换成

contents = file.readlines()

撰写回答