On Tue, 10 Nov 2020 08:19:55 +0100 "Loris Bennett" <loris.benn...@fu-berlin.de> wrote:
> Manfred Lotz <ml_n...@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' {} \; > My existing script in Perl which I wanted to migrate to Python I used `-T $file` and called sed I like the -T which I assume does some heuristics to tell me if a file is a text file. -- Manfred -- https://mail.python.org/mailman/listinfo/python-list