Python如何读取Excel文件?无需修改脚本设置路径且适配Selenium的实现方法
可行方案说明
需求完全可以通过传参实现,同时还有另外两种无需修改代码即可定义Excel路径的方案,具体如下:
方案1:命令行传参(最推荐,支持传多个Excel路径)
用Python内置的argparse模块接收命令行传入的文件路径,无需修改代码,运行时指定路径即可,修改后的代码示例:
import argparse import pandas as pd import datetime from selenium import webdriver # 初始化参数解析器 parser = argparse.ArgumentParser(description='Selenium批量处理Excel中的URL') # 接收多个Excel路径参数 parser.add_argument('excel_paths', nargs='+', help='多个Excel文件路径,空格分隔') args = parser.parse_args() # 合并所有Excel的url列 mylist = [] for excel_path in args.excel_paths: df = pd.read_excel(excel_path) mylist.extend(df['url'].tolist()) cont = 1 # 初始化计数器为1 driver = webdriver.Chrome() # 保留你原有的driver初始化逻辑 val = 10 # 保留你原有的等待时长定义 # 执行批量操作 for url in mylist: driver.get(url) driver.maximize_window() driver.implicitly_wait(val) timestamp = datetime.datetime.now().strftime('%d_%m_%Y') # 剩余原有逻辑保持不变
使用方法:假设你的脚本命名为selenium_task.py,运行时执行命令即可:python selenium_task.py /home/第一个文件.xlsx /home/第二个文件.xlsx /home/第三个文件.xlsx
支持传入任意数量的Excel路径,脚本会自动读取所有文件的url列合并后执行后续Selenium逻辑。
方案2:配置文件读取
把需要读取的Excel路径统一写到独立的配置文件中,脚本固定读取该配置文件获取路径,用户只需修改配置文件即可,无需触碰脚本代码。
- 新建
excel_path.cfg配置文件,每行写一个Excel路径:
/home/.../测试1.xlsx
/home/.../测试2.xlsx
/home/.../测试3.xlsx
- 脚本中增加读取配置的逻辑,示例如下:
# 读取配置文件中的所有Excel路径 with open('excel_path.cfg', 'r', encoding='utf-8') as f: excel_paths = [line.strip() for line in f if line.strip()] mylist = [] for excel_path in excel_paths: df = pd.read_excel(excel_path) mylist.extend(df['url'].tolist()) # 后续原有逻辑保持不变
该方案适合路径不需要频繁更换的场景,不用每次运行都输入参数。
方案3:运行时交互式输入
脚本运行后主动提示用户输入Excel路径,适合完全不懂命令行操作的普通用户,代码示例:
input_str = input("请输入Excel文件路径,多个路径用英文逗号分隔:") excel_paths = [path.strip() for path in input_str.split(',') if path.strip()] mylist = [] for excel_path in excel_paths: df = pd.read_excel(excel_path) mylist.extend(df['url'].tolist()) # 后续原有逻辑保持不变
内容的提问来源于stack exchange,提问作者Karenmtz
相关产品推荐
相关产品推荐

