【发布时间】:2018-03-23 19:18:30
【问题描述】:
我有这个代码
archivo=open("archivo.csv","r")
for i in range(10):
for reg in archivo:
if archivo[reg] < archivo[reg+1]:
x = archivo[reg]
archivo[reg] = archivo[reg+1]
archivo[reg+1] = x
archivo.close()
archivo = open("archivo.csv","w")
archivo.write(reg)
我想要的是按字母顺序排列文件并按顺序保存,但我有几个错误。主要的说该文件没有属性 getitem 并且在网络上我没有找到任何相等的东西。有人可以帮我吗?
输入看起来像
Matt | 7 | 8
John | 9 | 6
Jim | 6 | 7
【问题讨论】:
-
输入是什么样的?只有几行就足够了。还有为什么
for i in range(10):。一次只能读取几行,因此其他 9 次迭代将无济于事。基本上,您需要做的是将每一行读入某种形式,可以对其进行比较和排序,目前您只是比较包含行本身的字符串。还请考虑您可以使用csv模块,如果您能够使用它,这可能只是您的任务。 -
for 行是因为如果位置 7 中以“a”开头的项目例如被订购一次,它就不会在第一个位置。如果您有其他排序文件行的系统,请分享它,因为不具体。
-
我不明白你在说什么
-
很高兴看到您的输入文件 archivo.csv 的样本,因此我们不需要生成自己的测试文件。在我看来是一个问题的一件事是您使用
reg就好像它是一个索引 - 它实际上是档案的一个组件,而不是一个索引。 -
你认为
archivo[reg]应该做什么?错误告诉你这是无效的。
标签: python python-2.7 file csv