私は自分のフォルダに1,2,3から13の名前の13のcsvファイル(1.csv、2.csv、3csvなど)を持っています。それらは1から13まで数字順で1から始まるシートで編成された単一のExcelファイル(xlsx)に!私の唯一の問題は、その私の出力であるPythonでcsvファイルをオーダーされたシートに変換する
import glob, csv, xlwt, os
wb = xlwt.Workbook()
for filename in glob.glob("data/*.csv"):
(f_path, f_name) = os.path.split(filename)
(f_short_name, f_extension) = os.path.splitext(f_name)
ws = wb.add_sheet(f_short_name)
spamReader = csv.reader(open(filename, 'r'))
for rowx, row in enumerate(spamReader):
for colx, value in enumerate(row):
ws.write(rowx, colx, value)
wb.save("compiled.xlsx")
:compiled.xlsxが1,2,3,4,5から始まる(私はしたい順にシートを持っていないだろう...そして、そのために私はこれを使用しました.13)、それは4,13,11,12,5,6,8などで始まります。私は望む順番で私のフォルダにファイルを持っています、私はあなたの時間のおかげで、python 3を使用して、適切なシートの順序を取得するために自分のコードを変更することができます!
'glob.glob(" data/*。csv ")'を列挙する方法はありますか? 'for num、列挙するファイル名(glob.glob(" data/*。csv ")):'。それでは、 'wb.add_sheet(num + 1)'を使用する必要があります。 –
sheetname = sheetname.decode(self.encoding)AttributeErrorを取得します: 'int'オブジェクトに属性 'decode'がありません –
文字列 'wb.add_sheet (str(num + 1)) ' –