Alex8798
Alex8798

Reputation: 23

Eliminate specific number in a data file using Python

I have a large file and I want to delete all the values '24' within the data file. I have used this code but it doesn't do what I want. Suggestions please. Thanks

This is the data file

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

Code

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)

Upvotes: 0

Views: 30

Answers (2)

Károly Szabó
Károly Szabó

Reputation: 1273

You could use a regex for it, to match the 24 and delete it.

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)

Upvotes: 0

thatguyfig
thatguyfig

Reputation: 247

This should do it:

content = open('txt1.txt', 'r').readlines()

cleandata = []
for line in content:
    line = line.replace('24','')
    cleandata.append(line)
    
open('txt2.txt', 'w').writelines(cleandata)

Upvotes: 1

Related Questions