現在、.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
上記のコードが不完全であり、また、不適切にインデントしてもよいです。私はあなたがあなたの仕事のより小さい部分に焦点を当て、それをすべてまとめようとする前にそれぞれが働いていることを確認する必要があると思います。たとえば、追加の処理を行わずに、各CSVを.xlsxファイルとして保存するだけです。今のところ、上のコードはそれをしません。 –
また、xlutilsを実際に使用することができないことがわかります。このモジュールはxlrdとxlwtの間のブリッジとして機能し、xlwtを使用して.xlsxファイルを作成することはできません。 –
ありがとうございます。@ John Y.に感謝します。現在、私のスクリプトは元のcsvファイルから.xlsxファイルを作成しています。 xlsxファイルを作成するのにxlwtを使用できない場合は、プロジェクトを開始する必要があります。あなたは私の仕事に近づく方法についてアドバイスをしていますか: つまり、摩擦データを含むCSVファイルを取って、別のユニットにデータを変換し、新しいデータセットを出力してください。 – Mmoon