将.csv转换/分析为xlsx文件
问题描述:
我正在尝试编写一个将.csv文件转换为.xlsx文件的脚本,然后对新文件执行一些数据分析。我正在尝试复制我制作的新文件时遇到错误。将.csv转换/分析为xlsx文件
这里是错误:
File "C:/Users/mmunoz/Desktop/Excel Analysis/danielaScript1.0.py", line 40, in <module>
workbookCopy = xlutils.copy(workbook)
TypeError: 'module' object is not callable
这里是我的原代码
import os, csv
import glob
from openpyxl.cell import get_column_letter
from xlsxwriter.workbook import Workbook
import xlrd
import statistics as st
import xlutils.copy
position = []
load = []
positionMM = []
force = []
csvfile = input('Please input filename: ')
for csvfile in glob.glob(os.path.join('.', '*.csv')):
workbook = Workbook(csvfile + '.xlsx')
worksheet = workbook.add_worksheet()
with open(csvfile, 'r') as f:
reader = csv.reader(f)
for r, row in enumerate(reader):
for c, col in enumerate(row):
columb_letter = get_column_letter((c+1))
s = col
try:
s= float(s)
except ValueError:
pass
worksheet.write(r, c, s)
#%%
#workbook1 = xlrd.open_workbook(workbook)
workbookCopy = xlutils.copy(workbook)
sheet = workbook.sheet_by_index(0)
numRows = sheet.nrows
numCols = sheet.ncols
for row in range(2, numRows):
position.append(sheet.cell_value(row,2)) #appends values in column to position array
load.append(sheet.cell_value(row,3))#appends values in column to load array
答
xlutils.copy是一个模块。
尝试这种情况:
from xlutils.copy import copy
然后
workbookCopy = copy(workbook)
+0
我现在收到一个新的错误: AttributeError:'工作簿'对象没有'datemode'属性 – Mmoon
+0
这是一个不同的问题 - 如果我回答了这个问题,您应该将其标记为答案。 工作簿的文档没有指出datemode是一个属性,所以你为什么会认为它是? http://xlsxwriter.readthedocs.io/workbook.html –
上面的代码是不完整的,也可以是不正确地缩进。我认为你需要把重点放在你的任务的小部分,并确保它们中的每一个都在工作,然后再尝试把它们放在一起。例如,如何将每个CSV保存为.xlsx文件,而不需要任何额外的处理。现在,上面的代码甚至没有这样做。 –
我也认为你会发现你根本不能真正使用xlutils。该模块用作xlrd和xlwt之间的桥梁,并且不能使用xlwt创建.xlsx文件。 –
好的,感谢您的输入@John Y.截至目前,我的脚本正在成功创建来自原始csv文件的.xlsx文件。但是,如果我不能使用xlwt创建xlsx文件,我将需要启动我的项目。对于如何处理我的任务,您有任何建议: 也就是说,要获取具有摩擦数据的csv文件,将数据转换为不同的单位,然后输出新的数据集 – Mmoon