我有一个包含重复行的文件。我想要的是删除一个重复项以获得一个具有唯一行的文件。但我收到一个错误输出.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(使用前将#替换为@)