Python自动填表机器人读取文本文件数据填充表单问题求助
问题分析与解决方案
核心问题
- 文件读取与变量赋值错误
你当前代码读取文件内容到read_变量后,未将其转换为可索引的列表赋值给content,直接使用content[0]会触发NameError;若实际运行时填充了字符串"content[0]",则是误将变量名写成了字符串字面量(比如Phoneinput = "content[0]")。同时file.read()会把整个文件读成单个字符串,无法直接按行索引数据。 - 文件资源未合理管理
直接用open()打开文件后未关闭,可能导致资源泄漏,且代码鲁棒性差。
修正后的代码
if inputchoice == '2': # 用with上下文管理器自动处理文件关闭,避免资源泄漏 with open('info.txt', 'r') as file: # 按行读取并去除每行的换行符、空白字符,生成可索引的列表 content = [line.strip() for line in file.readlines()] # 检查文件行数是否满足需求,避免索引越界 if len(content) < 9: print("info.txt内容行数不足,请确保文件有9行数据") exit() # 从列表中提取对应数据 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]') # 若Phoneinput是字符串类型,无需额外str()转换 Phone1.send_keys(Phoneinput)
额外说明
- 确保
info.txt中每行对应一个数据项(第一行手机号、第二行名,依此类推共9行)。 line.strip()会清除每行首尾的空格、换行符,避免表单填充时出现多余空白。- 新增的长度检查可提前发现文件内容缺失问题,防止运行时崩溃。
内容的提问来源于stack exchange,提问作者val416
相关产品推荐
相关产品推荐

