如何修改xlsx2csv使其convert返回字符串而非写入文件?
修改xlsx2csv使其返回字符串而非写入文件
核心修改思路
Python 的 csv.writer 支持写入任意类文件对象,我们可以用 io.StringIO 替代实际文件,将内容写入内存缓冲区,最后提取缓冲区的字符串即可。
具体修改步骤
- 在文件开头导入
io模块:
import io
- 替换文件对象为内存缓冲区:
找到原本创建outfile的代码(比如打开本地文件的逻辑),将其替换为创建StringIO对象,同时修改csv.writer的传入参数:
# 替换原 outfile 相关代码 output_buffer = io.StringIO() writer = csv.writer(output_buffer, quoting=self.options['quoting'], delimiter=self.options['delimiter'], lineterminator=self.options['lineterminator'])
- 提取字符串内容:
在所有行写入完成后,从缓冲区获取生成的 CSV 字符串:
csv_result = output_buffer.getvalue() output_buffer.close() # 可选,用完后关闭缓冲区
- 调整返回逻辑:
将原本写入文件后结束的逻辑,改成返回csv_result字符串即可。
内容的提问来源于stack exchange,提问作者高永献
相关产品推荐
相关产品推荐

