【发布时间】:2014-08-01 20:45:54
【问题描述】:
我正在尝试删除 3 列制表符分隔的 txt 文件的重复项,但只要前两列是重复的,那么即使两者的第 3 列不同,也应该将其删除。
from operator import itemgetter
import sys
input = sys.argv[1]
output = sys.argv[2]
#Pass any column number you want, note that indexing starts at 0
ig = itemgetter(0,1)
seen = set()
data = []
for line in input.splitlines():
key = ig(line.split())
if key not in seen:
data.append(line)
seen.add(key)
file = open(output, "w")
file.write(data)
file.close()
首先,我得到错误
key = ig(line.split())
IndexError: list index out of range
另外,我看不到如何将结果保存到 output.txt
人们说保存到 output.txt 是一件非常基本的事情。但是没有教程有帮助。
我尝试了使用编解码器的方法,使用 with 的方法,使用 file.write(data) 的方法,但都没有帮助。
我可以很容易地学习 MatLab。在线教程非常棒,一系列谷歌搜索总是有很大帮助。
但我还没有找到有用的 Python 教程。这显然是因为我是一个完全的新手。对于像我这样的新手来说,1) 全面性和 2) 大量示例 3) 逐行解释的最佳教程是什么?
为什么上面的代码会导致错误而不保存结果?
【问题讨论】:
-
我强烈建议您使用
print语句来显示变量的内容,以确保它们包含您认为的内容。
标签: python