try except inside a with open

MRAB python at mrabarnett.plus.com
Fri Jul 20 16:27:10 EDT 2018


On 2018-07-20 18:59, Ganesh Pal wrote:
> Dear python Friends,
> 
> 
> I need a quick suggestion on the below code.
> 
> def modify_various_line(f):
>      """ Try modifiying various line """
>      try:
>          f.write('0123456789abcdef')
>          f.seek(5)     # Go to the 6th byte in the file
>          print f.read(1)
>          f.seek(-3, 2) # Go to the 3rd byte before the end
>          print f.read(1)
>          f.write('END')
>      except IOError as e:
>         raise
>      return True
> 
> def h():
>      try:
>          with open('/tmp/file.txt', 'r+') as f:
>               try:
>                   modify_various_line(f)
>               except Exception as e:
>                 print e
>      except IOError as e:
>          print(e)
> 
> h()
> 
> gpal-cwerzvd-1# python ganesh1.py
> 5
> d
> gpal-cwerzvd-1# cat /tmp/file.txt
> 0123456789abcdefEND#
> 
> 
> 
> (1) Can we  use try and expect  in  a 'with open' function as shown in the
> below example code .
> 
Yes.

> (2)  If I hit any other exceptions  say Value-error can I catch them as
> show below
> 
>      try:
>          with open('/tmp/file.txt', 'r+') as f:
>               try:
>                   modify_various_line(f)
>                   value_list = [str(value) for value in somedict.values()]]
>               except (ValueError,IOError) as e:
>                 print e
>      except IOError as e:
> 
> PS:  I don't want to use other way of opening file say file =
> open(“testfile.txt”,”w”)  and also want to retain modify_various_line(f)
> function ,
> 
Yes.



More information about the Python-list mailing list