从URL列表批量处理CSV:Pandas脚本批量执行问题求助
解决Python批量处理URL列表中CSV文件的问题
我看了你的代码,问题核心是没有遍历读取到的URL列表,反而直接把整个列表传给了pd.read_csv——这当然没法批量处理多个文件啦。我帮你调整一下代码,让它能逐个处理urls.txt里的每个CSV链接,并生成对应的新文件:
import pandas as pd # 读取urls.txt里的所有URL,自动处理空行和换行符 with open("urls.txt", "r") as f: urls = [line.strip() for line in f if line.strip()] # 逐个遍历并处理每个URL对应的CSV for index, url in enumerate(urls): try: # 读取CSV,跳过前7行 df = pd.read_csv(url, skiprows=7) # 这里放你的CSV修改逻辑,比如重命名列(示例) df = df.rename(columns=lambda col: col.replace("*.conradb...", "目标列名")) # 生成唯一输出文件名,两种方案可选: # 方案1:用原CSV文件名加前缀 output_filename = f"processed_{url.split('/')[-1]}" # 方案2:按顺序编号命名 # output_filename = f"processed_file_{index+1}.csv" # 保存处理后的CSV,不保留索引列 df.to_csv(output_filename, index=False) print(f"✅ 成功处理:{output_filename}") except Exception as e: print(f"❌ 处理URL {url} 失败:{str(e)}")
关键修改说明:
- 用
with open操作文件:这是Python推荐的安全文件读写方式,会自动帮你关闭文件,避免资源泄漏。 - 过滤无效URL:列表推导式
[line.strip() for line in f if line.strip()]会自动去掉空行和每行的换行符,避免无效的空URL导致报错。 - 批量遍历逻辑:通过
for index, url in enumerate(urls)逐个处理每个URL,确保每个CSV都被处理。 - 异常处理:加入
try-except块后,就算某个URL无法访问、CSV格式错误,脚本也能继续处理下一个文件,不会直接崩溃。 - 唯一文件名:两种命名方案能保证每个处理后的文件不会被覆盖,你可以根据自己的需求选择。
内容的提问来源于stack exchange,提问作者Ricky
相关产品推荐
相关产品推荐

