首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中openpyxl输出的拆分列表值

python中openpyxl输出的拆分列表值
EN

Stack Overflow用户
提问于 2022-04-18 15:21:52
回答 1查看 204关注 0票数 -1

我正在使用python中的openpyxl来提取特定的列数据,该列数据在少数单元格中有逗号分隔的值。输出我得到'CVE-2021-1111,CVE-2021‘。所需输出为“CVE-2021-1111”,“CVE-2021”。

请帮帮我

从excel列输入:(这里的大量数据被截断) CVE-2017-12652 CVE-2020-12243 CVE-2019-14866 CVE-2019-16935 CVE-17493 CVE-2021-1111,CVE-2021

来自openpyxl导入工作簿,load_workbook

高级= load_workbook("C:\senior.xlsx") sr = senior.active

range1 = sr'B2':'B15‘csv1 = []用于range1中的名称:用于单元格名称: if cell.value != None: csv1.append(cell.value) print(csv1)

我得到的产出是:“CVE-2017-12652”、“CVE-2020-12243”、“CVE-2019-14866”、“CVE-2019-16935”、“CVE-2019-17493”、“CVE-2021-1111、CVE-2021”

要求输出(最后两个值应分开):“CVE-2017-12652”、“CVE-2020-12243”、“CVE-2019-14866”、“CVE-2019-16935”、“CVE-2019-17493”、“CVE-2021-1111”、“CVE-2021-2021”。

EN

回答 1

Stack Overflow用户

发布于 2022-04-18 15:43:06

正如您所猜测的,您将需要用预期的逗号分隔cell.value。此外,还可以在附加到csv1以返回所需输出之前删除字符串中的空格。

代码语言:javascript
复制
from openpyxl import Workbook, load_workbook

senior = load_workbook("C:\senior.xlsx")
sr = senior.active

range1 = sr['B2':'B15'] 

csv1 = []

for names in range1:
    for cell in names:
        if cell.value != None:
            cell_value = cell.value.replace(' ', '').split(',')
            csv1 += cell_value if isinstance(cell_value, list) else [cell_value]

编辑:基于注释,我添加了一个更简单的版本,而不是在一行中填充csv1。

代码语言:javascript
复制
from openpyxl import Workbook, load_workbook

senior = load_workbook("C:\senior.xlsx")
sr = senior.active

range1 = sr['B2':'B15'] 

csv1 = []

for names in range1:
    for cell in names:
        if cell.value != None:
            cell_value = cell.value.replace(' ', '').split(',')
            if isinstance(cell_value, list):
                csv1 += cell_value
            else:
                csv1.append(cell_value)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71913732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档