How to replace unknown values inside a file in python
I go a file which is 10k+ rows and there are values such as image: "asdasddsg2332qh23h.png"
which I want to replace with image: ".png"
but there are multiple different value between the ""
so I can't simply target "asdasddsg2332qh23h"
and replace as that is 1 out of 10k combination and I want to replace everything. Is there a way of achieving this with a python script?
This is what I got so far:
import fileinput
replace_texts = {'test': 'w/e'}
for line in fileinput.input('readme.json', inplace=True):
for search_text in replace_texts:
replace_text = replace_texts[search_text]
line = line.replace(search_text, replace_text)
print(line, end='')
Solution 1:
As suggested by @Barmar, use a regex to replace your text:
import re
PAT = re.compile('image: ".*\.png"')
with open('readme.json') as inp, open('output.json', 'w') as out:
for line in inp:
out.write(PAT.sub('image: ".png"', line))
Solution 2:
FWIW you might not even need python at all, a simple sed
command will do the trick faster:
sed 's/.*\.png/.png/g' path_to_file > path_to_modified_file
Or if you want to modify in place:
sed -i 's/.*\.png/.png/g' path_to_file