15.04.18 11:57, Alexey Shrub пише:
I am new in python (i am moving from Perl world), but I always love Python for hight level, beatuful and clean syntax.
Now I have question/idea about working with files.
On mine opinion it very popular use case:
1. Open file (for read and write)
2. Read data from file
3. Modify data.
4. Rewrite file by modified data.

But now it is looks not so pythonic:

with open(filename, 'r+') as file:
    data = file.read()
    data = data.replace('old', 'new')
    file.seek(0)
    file.write(data)
    file.truncate()

What do you mean by calling this not pythonic?

I think best way is something like this

with open(filename, 'r+') as file:
    data = file.read()
    data = data.replace('old', 'new')
    file.rewrite(data)

but for this io.BufferedIOBase must contain rewrite method

If the problem is that you want to use a single line instead of three line, you can add a function:

def file_rewrite(file, data):
     file.seek(0)
     file.write(data)
     file.truncate()

and use it. This looks pretty pythonic to me.

_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to