将.csv转换/分析为xlsx文件

将.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 
+0

上面的代码是不完整的,也可以是不正确地缩进。我认为你需要把重点放在你的任务的小部分,并确保它们中的每一个都在工作,然后再尝试把它们放在一起。例如,如何将每个CSV保存为.xlsx文件,而不需要任何额外的处理。现在,上面的代码甚至没有这样做。 –

+0

我也认为你会发现你根本不能真正使用xlutils。该模块用作xlrd和xlwt之间的桥梁,并且不能使用xlwt创建.xlsx文件。 –

+0

好的,感谢您的输入@John Y.截至目前,我的脚本正在成功创建来自原始csv文件的.xlsx文件。但是,如果我不能使用xlwt创建xlsx文件,我将需要启动我的项目。对于如何处理我的任务,您有任何建议: 也就是说,要获取具有摩擦数据的csv文件,将数据转换为不同的单位,然后输出新的数据集 – Mmoon

xlutils.copy是一个模块。

尝试这种情况:

from xlutils.copy import copy 

然后

workbookCopy = copy(workbook) 

更多信息:http://xlutils.readthedocs.io/en/latest/copy.html

+0

我现在收到一个新的错误: AttributeError:'工作簿'对象没有'datemode'属性 – Mmoon

+0

这是一个不同的问题 - 如果我回答了这个问题,您应该将其标记为答案。 工作簿的文档没有指出datemode是一个属性,所以你为什么会认为它是? http://xlsxwriter.readthedocs.io/workbook.html –