【问题标题】:for loop multiple valuefor循环多值
【发布时间】:2023-03-08 22:27:01
【问题描述】:

我的脚本如下:

import xlsxwriter
import subprocess

workbook = xlsxwriter.Workbook('demo.xlsx')
worksheet = workbook.add_worksheet('NMOC')
bold = workbook.add_format({'bold': True})

 # Write some data headers.
worksheet.write('A1', 'RNC', bold)
worksheet.write('B1', 'CELL', bold)
for line in open('/root/Desktop/Scripting/Update_Table/eaw/test.txt'):

alias = line.rstrip("\n").split(';')
print(alias)

# Start from the first cell. Rows and columns are zero indexed.
row = 1
col = 0

for rnc, cell in (alist):
   worksheet.write(row,col,  rnc)
   worksheet.write(row,col + 1, cell)
   row += 1
workbook.close()

我使用的是 python 3.5 版本。这是我得到的错误:

['BSC19', 'TS9001']
['BSC19', 'TS555']
Traceback (most recent call last):
  File "test.py", line 53, in <module>
    for rnc, cell in (alias):
ValueError: too many values to unpack (expected 2)

我的代码有什么问题?

[root@nocjobs eaw]# cat test.txt

BSC19;TS9001
BSC19;TS555

【问题讨论】:

  • 哪行代码导致错误?
  • 我的脚本更新了

标签: python python-3.x for-loop xlsxwriter


【解决方案1】:

我敢打赌,问题就在这里 -> for rnc, cell in (alist):

因为在某些迭代中(甚至可能是第一次) var alist 仅包含一个值,但您尝试将其解压缩为 tuple(rnc, cell)

据我了解,您想做这样的事情:

row = 1
for line in open('test.txt'):
    alist = line.rstrip("\n").split(';')
    col = 0
    for value in (alist):
        worksheet.write(row, col, value)
        col += 1
    row += 1

【讨论】:

    【解决方案2】:

    如果您在问题中指的是line = "cat myfile BSC19;TS9001 BSC19;TS555",那么问题在于alist 中有什么,这将是['cat myfile BSC19', 'TS9001 BSC19', 'TS555'],这是一个包含3 个项目的列表。

    for rnc, cell in (alist): 类似于赋值 rnc, cell = alist,这意味着它期望 alist 有两个东西。

    我认为您需要修复 line.rstrip( ).split(';'),但我不确定 tehtesttt.sh 文件中数据的预期格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-18
      • 2021-05-01
      • 2015-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多