【发布时间】:2021-02-20 13:11:42
【问题描述】:
我从数据分析和 Python 开始,我目前的工作是导入带有推文的大型 CSV 文件并将它们保存为 xlsx,格式为:Unicode UTF-8。我一直在用经典的方式一个一个地做,但我有数百个,而且还会有更多,所以我需要自动化它。 为了不丢失数据,我需要做的过程如下。
我曾尝试用 python 来做,但到目前为止只能逐个文件夹(从一个文件一个文件改进)但代码丢失了一些数据,我认为这是因为它只作为 csv 文件打开并保存它是 xlsx(我不太清楚,因为代码是互联网上其他人的集合,抱歉)。
import os
currentDirectory = os.getcwd()
os.chdir (currentDirectory)
import os
import glob
import csv
import openpyxl # from https://pythonhosted.org/openpyxl/ or PyPI (e.g. via pip)
for csvfile in glob.glob(os.path.join('.', '*.csv')):
wb = openpyxl.Workbook()
ws = wb.active
with open(csvfile, 'rt', encoding='UTF-8') as f:
reader = csv.reader(f)
for r, row in enumerate(reader, start=1):
for c, val in enumerate(row, start=1):
ws.cell(row=r, column=c).value = val
wb.save(csvfile.replace ('.csv', '.xlsx')) #.csv' + '.xlsx')
我正在尝试改进它添加新的东西,但如果有人知道如何在 Python 或 VBA 或其他语言中执行确切的过程,如果你能分享,我将不胜感激。
编辑:回答评论并在运行一些文件比较之后似乎唯一的区别是格式,但它似乎并不是数据本身的丢失。但是我的客户要求我让它自动但保持第一个的格式。第一个是我想要的格式,第二个是自动生成的文件:
谢谢
【问题讨论】:
-
您能否详细说明“代码丢失了一些数据”? CSV 中的这些行或列是否没有被传输到 Excel 文件,或者是某些 CSV 文件没有被处理?
-
原来不是数据丢失,是格式变了所以我修改了问题。