我编写了以下代码:
import sys, csv, operator
data = csv.reader(open('books.csv'),delimiter=',')
header = next(data)
print (header)
sortedlist = sorted(data, key=operator.itemgetter(1))
with open("books_sort.csv", "wb") as f:
# fileWriter = csv.writer(f, delimiter=',')
fileWriter = csv.writer(f)
# fileWriter.writerows(header)
# fileWriter.writerows(sortedlist)
for row in sortedlist:
print (row)
# f.writerows(row)
此代码的目标是获取一个包含列中内容的文件,并仅基于第二列对该文件进行字母排序。然后将所需结果输出到一个新文件中。我上面的代码可以打印所需的结果,但是当我试图让它输出一个包含它的新文件时,它不起作用。您可以在上面的注释中看到我试图编写新文件的部分。你们有什么办法吗?在你们说更简单的方法是使用熊猫之前,我是特别不允许这样做的。以下是我的文件内容:
Title, Author, Publisher, Year, ISBN-10, ISBN-13
Automate the..., Al Sweigart, No Sta..., 2015, 15932..., 978-15932...
Dive into Py..., Mark Pilgr..., Apress, 2009, 14302..., 978-14302...
"Python Cook..., "David Bea..., O'Reil..., 2013, 14493..., 978-14493...
Think Python..., Allen B. D..., O'Reil..., 2015, 14919..., 978-14919...
"Fluent Pyth..., Luciano Ra..., O'Reil..., 2015, 14919..., 978-14919...
看来你让这件事变得不必要了。首先,让我们清理示例数据,因为不匹配的双引号混淆了
cvs.reader
:接下来,让我们根据cvs模块文档建立一个程序:
它生成一个包含以下内容的输出文件:
缺少双引号,但希望是正确的。在注释掉的代码中,您在一行上调用了
writerows()
这是我们不应该指望的。这里您将使用
writerow()
。你知道吗相关问题 更多 >
编程相关推荐