Я сталкиваюсь с некоторой проблемой с использованием csv / numpy / openpyxl, проблема в том, что у меня есть файл .dat, в
a,a,a,a
b,b,b,b
c,c,c,c
Я хочу взять каждую строку файла dat, поместить его в один Столбец за Excel, что означает
Файл Excel:
a b c
a b c
a b c
Вот что я получил до сих пор:
import csv
import openpyxl
import numpy as np
wb = openpyxl.Workbook()
ws = wb.active
with open('Shari10.dat') as f:
dat_reader = csv.reader(f, delimiter = ",")
for header in csv.reader(f):
break
for dat_line in f:
line = dat_line.split(",")
data = np.vstack(line[1:8])
for row in data:
ws.append(row)
print(row)
#wb.save("coffee.xlsx")
Вот ошибка:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-17-a07e6ac6842f> in <module>
20 print(data)
21 for row in data:
---> 22 ws.append(row)
23 #wb.save("coffee.xlsx")
~\AppData\Local\Continuum\anaconda3\lib\site-packages\openpyxl\worksheet\worksheet.py in append(self, iterable)
665
666 else:
--> 667 self._invalid_row(iterable)
668
669 self._current_row = row_idx
~\AppData\Local\Continuum\anaconda3\lib\site-packages\openpyxl\worksheet\worksheet.py in _invalid_row(self, iterable)
792 def _invalid_row(self, iterable):
793 raise TypeError('Value must be a list, tuple, range or generator, or a dict. Supplied value is {0}'.format(
--> 794 type(iterable))
795 )
796
TypeError: Value must be a list, tuple, range or generator, or a dict. Supplied value is <class 'str'>
Для справки, я пытался сделать это:
data = [
['A', 100, 1.0],
['B', 200, 2.0],
['C', 300, 3.0],
['D', 400, 4.0],
]
for row in data:
ws.append(row)
Между тем, я только начал изучать python, так что простите мою грязную структуру кода, что касается грамматики, я пытаюсь писать как можно точнее, а не сокращать код.