gpt4 book ai didi

python - 使用 xlsxwriter ByteIO 对象写入 CSV 文件

转载 作者:行者123 更新时间:2023-12-01 01:42:28 24 4
gpt4 key购买 nike

我正在使用 xlsxwriter ByteIO 对象创建一个 .xlsx 文件,我想使用同一对象创建 .CSV 文件。这可能吗?

这是我的代码:

outputStr=BytesIO()
workbook = xlsxwriter.Workbook(outputStr,{'in_memory': True})
worksheet = workbook.add_worksheet()

# Some data we want to write to the worksheet.
row = 0
col = 0
expenses=(['OriginalURL','NormalizedURL','Response','DuplicateOf','SourceId', 'RelatedSources'],)

for OriginalURL,NormalizedURL,Response,DuplicateOf,SourceId,RelatedSources in (expenses):
worksheet.write(row, col, OriginalURL)
worksheet.write(row, col+1, NormalizedURL)
worksheet.write(row, col+2, Response)
worksheet.write(row, col+3, DuplicateOf)
worksheet.write(row, col+4, SourceId)
worksheet.write(row, col+5, RelatedSources)
row += 1

workbook.close()

在不存储文件的情况下,使用“outputStr”对象将“.xlsx”文件附加到 JIRA 云中。

这是 Jira 代码(使用 .xlsx 文件):

thisJira.add_attachment(issue=new_issue, attachment=outputStr, filename='Result.xlsx')

我想附加具有相同结果的 CSV 文件(我在 .csv 中尝试过相同的代码,但它不起作用):

thisJira.add_attachment(issue=new_issue, attachment=outputStr, filename='CopyResult.csv')

我在 CSV 文件中收到此错误:

““.xls”的文件格式和扩展名不匹配。该文件可能已损坏或不安全。除非您信任其来源,否则请勿打开它。您仍然要打开它吗?”

帮帮我吧!谢谢。

最佳答案

您可以使用内置的 csv模块来将 CSV 与 XLSX 文件一起写入,您只需要稍微不同地创建它:

import csv
import io
import xslxwriter

xlsx_data = io.BytesIO()
csv_data = io.StringIO() # on Python 2.x use `io.BytesIO()`

# XLSX part
workbook = xlsxwriter.Workbook(xlsx_data, {'in_memory': True})
worksheet = workbook.add_worksheet()

# CSV part
csv_writer = csv.writer(csv_data)

# Some data we want to write to the worksheet.
expenses=(['OriginalURL', 'NormalizedURL', 'Response', 'DuplicateOf',
'SourceId', 'RelatedSources'],)

for row, data in enumerate(expenses):
# XSLX part
worksheet.write_row(row, 0, data) # if needed, add an offset to the row/column

# CSV part
csv_writer.writerow(data)

workbook.close()

# CSV data available in csv_data, XLSX data available in xlsx_data

从您的问题中不清楚您是否希望同时创建它们 - 如果不是,只需删除 XLSX 部分(您可以执行 csv_writer.writerows(expenses)直接,无需迭代各个行)。

关于python - 使用 xlsxwriter ByteIO 对象写入 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51738838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com