我收到错误:fieldnames = csv_readers.fieldnames AttributeError:'list'对象没有属性'fieldnames'
所以我注释掉了这条线,再次运行。
新错误:sorted_csv_contents =已排序(csv_contents,key = op.itemgetter(0)) AttributeError:DictReader实例没有属性“ getitem ”
代码的用途:按列值对csv文件进行切片,将每个唯一实例及其重复项分组到一个新文件中。所有这些都是在不必每次都输入实际文件路径的情况下完成的。
from os import listdir
import csv
import itertools as it, operator as op
# Get the list of all files/directories in current path
all_files = listdir('.')
# Filter out only the .csv files
csv_files = [file for file in all_files if file.endswith('.csv')]
print csv_files
# Create file objects and csv objects for each CSV
csv_contents =[]
file_objects = [open(file) for file in csv_files]
csv_readers = [csv.DictReader(csvfile) for csvfile in file_objects]
fieldnames = csv_readers.fieldnames
for line in csv_readers:
csv_contents.append(line)
sorted_csv_contents = sorted(csv_contents, key = op.itemgetter(0))
for groupkey, groupdata in it.groupby(sorted_csv_contents, key=op.itemgetter(0)):
with open('slice_{:s}.csv'.format(groupkey), 'wb') as fou:
dict_writer = csv.DictWriter(fou, fieldnames=fieldnames)
dict_writer.writeheader()
dict_writer.writerows(groupdata)
for file in file_objects:
file.close()