2016-08-11 26 views
0

現在、.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 

は私の元のコードはxlutils.copyがモジュールである

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ファイルを作成しています。 xlsxファイルを作成するのにxlwtを使用できない場合は、プロジェクトを開始する必要があります。あなたは私の仕事に近づく方法についてアドバイスをしていますか: つまり、摩擦データを含むCSVファイルを取って、別のユニットにデータを変換し、新しいデータセットを出力してください。 – Mmoon

答えて

0

です。

これを試してください:

from xlutils.copy import copy 

次いで

workbookCopy = copy(workbook) 

詳しい情報:http://xlutils.readthedocs.io/en/latest/copy.html

+0

私は今新しいエラーを受け取っています: AttributeError: 'Workbook'オブジェクトに属性 'datemode'がありません – Mmoon

+0

これは別の質問です。 ワークブックのドキュメントでは、データモードが属性であるとは示されていないので、それはなぜだと思いますか? http://xlsxwriter.readthedocs.io/workbook.html –

関連する問題