使用Python消除数据文件中的特定数字

使用Python消除数据文件中的特定数字,python,data-cleaning,Python,Data Cleaning,我有一个大文件,我想删除数据文件中的所有值“24”。我已经使用了这个代码,但它没有做我想要的。请给我一些建议。谢谢 这是数据文件 24,24,24,24,24,24,1000,1000,24,24,24,1000,1000,1000,1000,24,24,24,24,24,24,24,24,24,24,1000,1000,1000,1000,1000,1000,1000,1000,24,24,24,24,1000,1000,1000,1000,24,1000,24,24,24,24,1000,1

我有一个大文件,我想删除数据文件中的所有值“24”。我已经使用了这个代码,但它没有做我想要的。请给我一些建议。谢谢

这是数据文件

24,24,24,24,24,24,1000,1000,24,24,24,1000,1000,1000,1000,24,24,24,24,24,24,24,24,24,24,1000,1000,1000,1000,1000,1000,1000,1000,24,24,24,24,1000,1000,1000,1000,24,1000,24,24,24,24,1000,1000,1000,1000,1000,24,24,24,24,24,24,1000,24,24,24,24,1000,1000,1000,1000,1000,1000,1000,1000,1000,24,24,24,24,1000,1000,1000,1000,24,1000,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,1000,1000,24,24,24,24,24,24,1000,1000,1000,24,24,24,24,1000,1000,1000,1000,1000,1000,1000,1000,1000,24,24,24,24,24,24,24,24,24,24,24,24,24,1000,1000,24,24,24,24,24,24,24,24,24,1000,1000,1000,24,24,24,1000,24,24,1000,1000,24,24,24,24,1000,1000,1000,1000,1000,1000,1000,24,24,24,1000,1000,1000,1000,1000,1000,24,24,24,1000,1000,1000,1000,1000,1000,1000,24,24,24,24,1000,1000,24,1000,1000,24,24,1000,1000,1000,1000,1000,1000,1000,24,24,24,1000,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,1000,1000,24,24,24,1000,1000,1000,1000,1000,24,24,24,24,24,24,24,24,1000,1000,1000,1000,1000,24,24,24,24,24,24,1000,24,24,24,24,24,24,24,24,24,1000,1000,1000,1000,1000,1000,24,24,24,24,24,24,24,24,24,24,1000,1000,1000,24,1000,1000,1000,1000,24,24,1000,1000,24,24,24,24,24,24,24,1000,24,24,24,24,24,24,1000,1000,1000,1000,1000,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,1000,1000,1000,1000,1000
content = open('txt1.txt', 'r').readlines()
cleandata = []
for line in content:
    line = {i:None for i in line.replace("\n", "").split()}
    for value in line.copy():
         if value == "24":
            line.pop(value)
    cleandata.append(" ".join(line) + "\n")

open('txt2.txt', 'w').writelines(cleandata)
代码

24,24,24,24,24,24,1000,1000,24,24,24,1000,1000,1000,1000,24,24,24,24,24,24,24,24,24,24,1000,1000,1000,1000,1000,1000,1000,1000,24,24,24,24,1000,1000,1000,1000,24,1000,24,24,24,24,1000,1000,1000,1000,1000,24,24,24,24,24,24,1000,24,24,24,24,1000,1000,1000,1000,1000,1000,1000,1000,1000,24,24,24,24,1000,1000,1000,1000,24,1000,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,1000,1000,24,24,24,24,24,24,1000,1000,1000,24,24,24,24,1000,1000,1000,1000,1000,1000,1000,1000,1000,24,24,24,24,24,24,24,24,24,24,24,24,24,1000,1000,24,24,24,24,24,24,24,24,24,1000,1000,1000,24,24,24,1000,24,24,1000,1000,24,24,24,24,1000,1000,1000,1000,1000,1000,1000,24,24,24,1000,1000,1000,1000,1000,1000,24,24,24,1000,1000,1000,1000,1000,1000,1000,24,24,24,24,1000,1000,24,1000,1000,24,24,1000,1000,1000,1000,1000,1000,1000,24,24,24,1000,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,1000,1000,24,24,24,1000,1000,1000,1000,1000,24,24,24,24,24,24,24,24,1000,1000,1000,1000,1000,24,24,24,24,24,24,1000,24,24,24,24,24,24,24,24,24,1000,1000,1000,1000,1000,1000,24,24,24,24,24,24,24,24,24,24,1000,1000,1000,24,1000,1000,1000,1000,24,24,1000,1000,24,24,24,24,24,24,24,1000,24,24,24,24,24,24,1000,1000,1000,1000,1000,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,1000,1000,1000,1000,1000
content = open('txt1.txt', 'r').readlines()
cleandata = []
for line in content:
    line = {i:None for i in line.replace("\n", "").split()}
    for value in line.copy():
         if value == "24":
            line.pop(value)
    cleandata.append(" ".join(line) + "\n")

open('txt2.txt', 'w').writelines(cleandata)
这应该做到:

content=open('txt1.txt','r')。readlines()
cleandata=[]
对于内容中的行:
行=行。替换('24','')
cleandata.append(第行)
打开('txt2.txt','w')。写入线(cleandata)

您可以使用正则表达式来匹配24并删除它

import re

regex24 = re.compile(r"\b24,?\b")

f = open('txt1.txt', 'r')
cleans = [regex24.sub("", line) for line in f.readlines()]

open('txt2.txt', 'w').writelines(cleans)

此代码有任何特定错误吗?或者根本没有给出正确的结果?它根本不做任何更改@Lorenzo Zane
line={…}
您创建了dict,它只包含一个唯一的键(i)。您可能需要列表或生成器,您可以在创建时使用
(i代表行中的i。如果i!=“24”),则拆分(“,”)
。这也会删除一些可能不应删除的内容,例如:
Hello 124
->
Hello 1
@thatguyfig我尝试了此操作,它确实删除了24个值,但用逗号“,”替换它们。如何删除它?扫描字符串时出现错误f=open('BVE300_6.txt,'r')^SyntaxError:EOLliteral@Alex8798注释中的代码在BVE300_6.txt之后缺少一个引号,可能这就是为什么您会遇到语法错误,我还更改了正则表达式以删除逗号,因为你同时更新了这个问题。谢谢,我现在尝试了你的代码,没有错误,但是我打开了文件,它实际上是空的@Alex8798您很可能提供了与读取相同的文件来写入。如果您想在相同的文件名和路径上使用我的答案,我已将其更新为有效。