Skip to main content
 首页 » 编程设计

python之使用 python 在文本文件中写入、合并和排序值

2025年05月04日76zhujiabin

我从 .dat 文件获取值并将这些值写入 txt 文件。问题是有些值会重复。以下是 txt 文件中的示例输出:

1001    
1002    
1003    
1003    
1004    
1005  

如何删除或合并 1003 值并将其保存在我创建的新 txt 文件中?这是我当前的代码:

for line in fi: 
    if "CA002" in line: 
        txt = fi.next() 
        print txt #view values 
 
        file = open("Reference.txt", "a+") 
        file.write(txt) 
try: 
    read = file.readlines() 
    read = list(set(read)) 
    read.sort() 
    print read 
finally: 
    file.close() 

我实际上不确定我写的内容是否有效。有人说使用 set() 函数来合并重复值。但我不认为它能完成工作。有什么建议么?请原谅我的代码,我才刚刚开始学习 python 的基础知识。谢谢!

最终结果在文本文件中应该是这样的:

1001    
1002    
1003    
1004    
1005 

请您参考如下方法:

您可以使用 set 容器检查重复项然后写入文件,也可以使用 with 打开文件而不使用 python 作为更 pythonic 的方式输入名称作为您的变量名称!:

with open("Reference.txt", "a+") as f,open("input.dat") as fi : 
    seen=set() 
    for line in fi: 
        if "CA002" in line: 
            txt = fi.next() 
            print txt #view values 
            seen.add(txt) 
            if not txt in seen : 
                f.write(txt) 

如果你在 2.6 中,你不能对多个项目使用 With 语句,所以你可以这样做:

with open("Reference.txt", "a+") as f : 
   with open("input.dat") as fi: 
        seen=set() 
        for line in fi: 
            if "CA002" in line: 
                txt = fi.next() 
                print txt #view values 
                seen.add(txt) 
                if not txt in seen : 
                    f.write(txt)