python写个脚本去除文本文件重复行(python 去除重复行)
python如何去除重复行并分别统计重复的行数?已有去除重复的代码
python的速度效率是不高的,如何对速度要求比较高的话建议可以用c来写。
我写了这个代码,python2.6+windows xp测试通过。
希望能帮到你~
===================================================
a=[] #初始化要用到的列表a,用于记录原始行信息
b=[] #初始化要用到的列表b,用于记录结果数据,由两项构成。前一项为行信息如“小明:90”,后一项为该行对应的出现次数如2
f1=file("1.txt", "r") #打开1.txt文件
for line in f1:
a.append(line) #将1.txt文件每一行作为一个元素,存入列表a
f1.close
for n in a: #遍历a中每一项(记为n),即1.txt中每一行
flag=1
for i in range(0,len(b)):
if n==b[i][0]: #n与列表b中的每一项对比,如果有相等的:
b[i][1]=b[i][1]+1 #那么对应的出现计数加1
flag=0
break
if flag==1: #如果前面的比对没有一个相等的,即该行是第一次出现:
b.append([n,1]) #那么在列表b中添加改行为新的一项
f2=file("2.txt", "w") #打开2.txt文件,用于输出
for n in b: #输出格式为:行信息 (tab) 出现次数 (回车)
f2.write(str(n[0][0:-1]) + " ")
f2.write(str(n[1]) + " ")
f2.close
print "Finished" #完成
求助:如何用python脚本删除文本中的重复行(相同记录只保留一个)
:em06:
楼上的代码看不懂,能不能解释一下?
我的方案要短也可以,看下面:h,r,w
={},
file('data'),
file('newdata','w')w.write(reduce(lambda
x,y:x+y,
[i
for
i
in
r
if
h.get(i)==None
and
h.setdefault(i,
True)]))复制代码[
本帖最后由
retuor
于
2008-8-23
00:35
编辑
]
python如何去除重复行并写入另一个文件
fin?=?'a.txt'
fout?=?'b.txt'
with?open(fin)?as?f:
ss?=?f.reads().strip().split(' ')
s2?=?[ss[0]]?
for?s?in?ss[1:]:
if?s?!=?s2[-1]:
s2.append(s)
with?open(fout,?'w')?as?f:
f.write(' '.join(s2))
or
fin?=?'a.txt'
fout?=?'b.txt'
with?open(fin)?as?f:
ss?=?f.reads().strip().split(' ')
s2?=?[ss[i]?for?i?in?range(len(ss))?if?i==0?or?ss[i]!=ss[i-1]]
with?open(fout,?'w')?as?f:
f.write(' '.join(s2))
python如何合并多个txt文件删除所有重复行并生成新文件
把所有的这些txt文件放到一个文件夹里
打开cmd, 进入到这个放了多个txt的文件夹, 运行命令copy *.txt all.txt
在该文件夹下创建一个python脚本 1.py, 将下列代码复制进去
#?coding=utf-8
#?using?python27
file_path?=?'all.txt'
with?open(file_path,?'r')?as?f:
card_informations?=?map(lambda?x:?x.strip().split(' '),?f.readlines())
for?i?in?range(len(card_informations)):
number?=?card_informations[i][0]
if?len(number)10:
card_informations[i][0]?+=?'0'#?给小于十位的加上0
#?剔除重复数据
result?=?[]
for?i?in?card_informatios:
if?i?not?in?result:
result.append(i)
#?写入新文件
with?open('result.txt',?'w+')?as?f:
for?i?in?range(len(result)):
f.write(result[i][0]+' '+result[i][1]+' )
4. 运行该脚本, 然后该文件夹下就会多出一个result.txt的文件, 里面放的就是去重完之后的所有卡信息.