如何在Python中删除文件中的重复行

2024-04-13

我有一个包含重复行的文件。我想要的是删除一个重复项以获得一个具有唯一行的文件。但我收到一个错误输出.writelines(唯一行(文件行)) 类型错误:writelines() 参数必须是字符串序列我搜索过同样的问题,但我仍然不明白出了什么问题。 我的代码:

def uniquelines(lineslist):
    unique = {}
    result = []
    for item in lineslist:
        if item.strip() in unique: continue
        unique[item.strip()] = 1
        result.append(item)
    return result
file1 = codecs.open('organizations.txt','r+','cp1251')
filelines = file1.readlines()
file1.close()
output = open("wordlist_unique.txt","w")
output.writelines(uniquelines(filelines))
output.close()

代码使用不同的open:codecs.open当它读到时,open当它写的时候。

readlines使用创建的文件对象codecs.open返回 unicode 字符串列表。尽管writelines文件对象创建使用open期望一个(字节)字符串序列。

替换以下行:

output = open("wordlist_unique.txt","w")
output.writelines(uniquelines(filelines))
output.close()

with:

output = codecs.open("wordlist_unique.txt", "w", "cp1251")
output.writelines(uniquelines(filelines))
output.close()

或者最好(使用with陈述):

with codecs.open("wordlist_unique.txt", "w", "cp1251") as output:
    output.writelines(uniquelines(filelines))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中删除文件中的重复行 的相关文章

随机推荐