You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python批量登录Linux服务器执行命令并导出Excel时遇报错

问题解决:xlsxwriter写入Excel报错AttributeError

报错原因

你代码里的xlsxwriter.Workbook("%s.xlsx"%ls[3],"w")写法错误:xlsxwriter.Workbook的第二个参数要求传入配置选项字典,而不是文件打开模式字符串(比如"w")。代码把字符串当成选项字典调用get方法,才触发了'str' object has no attribute 'get'错误。xlsxwriter默认会创建新文件,无需手动指定"w"。

修正后的完整代码

import xlsxwriter

# 用with语句自动管理文件,避免手动关闭的疏漏
with open("creds.csv", "r") as cred:
    for line in cred.readlines():
        # 这里保留你获取/etc/passwd内容的逻辑
        users = ...  
        
        # 将users按行分割,避免逐个字符写入
        user_lines = users.splitlines() if isinstance(users, str) else users
        
        # 初始化Workbook,去掉多余的"w"参数
        workbook = xlsxwriter.Workbook(f"{ls[3]}.xlsx")
        worksheet = workbook.add_worksheet()
        
        # 可选:写入表头
        worksheet.write(0, 0, "/etc/passwd 内容")
        
        row = 1
        col = 0
        # 逐行写入服务器返回的内容
        for line in user_lines:
            worksheet.write(row, col, line)
            row += 1
        
        # 必须关闭Workbook才能完成文件写入,否则Excel会损坏
        workbook.close()

关键注意事项

  • 确认ls[3]是已定义的有效变量(比如从cred.csv每行解析出的服务器标识,用来命名Excel文件)。
  • 不要用"".join(users)把多行内容拼成单字符串,否则循环写入时会逐个字符拆分,导致每行只有一个字符。
  • 必须调用workbook.close(),否则生成的Excel文件会无法正常打开。

内容的提问来源于stack exchange,提问作者Mukesh Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 23:25:26