我收到类型错误:“发电机”对象是不是想使信息列出了几个CSV文件时,标化,对它们进行排序,使我得到我需要的信息并将这些信息放入一个新的.xlsx文件中。我想知道这里有没有人可以帮我解决我的问题。难道不能被访问或者是有什么错我的代码的CSV文件? (其中我的错误我没加整个代码,只有代码)类型错误:“发电机”对象不是标化,csv文件
代码:
import csv
import operator
from openpyxl import Workbook, load_workbook
import os
import logging
def opencsv(csvfile):
csvdata = []
with open(csvfile, encoding='utf-8-sig') as csv_input:
try:
reader = csv.reader(csv_input, delimiter=';')
for row in reader:
key_1 = row[0]
key_2 = row[1]
1_2 = key_1.split(';')
2_1 = key_2.split(';')
csvdata.append(veiliste+lenker_per_vei)
sortedlist = sorted(csvdata, key=operator.itemgetter(0),
reverse=False)
return sortedlist
finally:
csv_input.close()
def copycsv(excel_file, csvfile):
rel_path_xlsx = r'C:\Myfolder\xlsx'
rel_path_csv = r'C:\Myfolder\CSV'
wb1 = load_workbook(rel_path_xlsx+"\\"+excel_file)
wb2 = Workbook()
ws1 = wb1.active
ws2 = wb2.active
sortedlist = opencsv(rel_path_csv+"\\"+csvfile)
listed = sorted(sortedlist, key=operator.itemgetter(0), reverse=False)
for info in listed:
ws2.append(info)
col_v = ws2.columns[0] #line 39, error
col_n = ws2.columns[1]
for idx, cell in enumerate(col_v, 1):
ws1.cell(row=idx, column=4).value = cell.value
for idx, cell in enumerate(col_n, 1):
ws1.cell(row=idx, column=5).value = cell.value
wb1.save(r"C:\Myfolder"+"\\"+"file_"+excel_file)
def copyxlsx(rel_path_xlsx, rel_path_csv):
for filename in zip(sorted(os.listdir(rel_path_xlsx)),
sorted(os.listdir(rel_path_csv))):
print(filename[0], filename[1])
copycsv(filename[0], filename[1]) #line 55, error
Traceback (most recent call last):
line 55, in copyxlsx
copycsv(filename[0], filename[1])
line 39, in copycsv
col_v =ws2.columns[0]
TypeError: 'generator' object is not subscriptable
我很新的蟒蛇,所以任何帮助将不胜感激!在Python3.4.1
最低配置,你可以已经发布了错误的行号。但通常你必须发布完整的堆栈跟踪。你期望我们仔细阅读你的代码中的everyline,寻找一条可能会抛出该错误的行http://stackoverflow.com/help/how-to-ask – e4c5
对不起,我已经添加了现在出现错误的行。 – Pexe