Changing strings in files
Loris Bennett
loris.bennett at fu-berlin.de
Tue Nov 10 02:19:55 EST 2020
Manfred Lotz <ml_news at posteo.de> writes:
> I have a situation where in a directory tree I want to change a certain
> string in all files where that string occurs.
>
> My idea was to do
>
> - os.scandir and for each file
> - check if a file is a text file
> - if it is not a text file skip that file
> - change the string as often as it occurs in that file
>
>
> What is the best way to check if a file is a text file? In a script I
> could use the `file` command which is not ideal as I have to grep the
> result. In Perl I could do -T file.
>
> How to do best in Python?
If you are on Linux and more interested in the result than the
programming exercise, I would suggest the following non-Python solution:
find . -type -f -exec sed -i 's/foo/bar/g' {} \;
Having said that, I would be interested to know what the most compact
way of doing the same thing in Python might be.
Cheers,
Loris
--
This signature is currently under construction.
More information about the Python-list
mailing list