Welcome, guest | Sign In | My Account | Store | Cart
import os

__author__
= 'Denis Barmenkov <denis.barmenkov@gmail.com>'
__source__
= 'http://code.activestate.com/recipes/577199-file-readwrite-routines/'

def read_file(fn, **kw):
   
assert os.path.isfile(fn), 'File not found: "%s"' % fn
    binmode
= kw.get('binmode', 0)
   
if binmode:
        open_mode
='rb'
   
else:
        open_mode
='r'
    f
= open(fn, open_mode)
   
if binmode:
        rc
= f.read()
       
assert len(rc) == os.path.getsize(fn)
   
else:
        rc
= map(lambda x: x.splitlines()[0], f)
    f
.close()
   
return rc

def write_file(fn, data, **kw):
    binmode
= kw.get('binmode', 0)
   
if binmode:
        open_mode
='wb'
   
else:
        open_mode
='w'
    f
= open(fn, open_mode)
   
if binmode:
        f
.write(data)
   
else:
       
for v in data:
            f
.write(v + '\n')
    f
.close()


def indent_lines(fn_src, fn_dest):
   
'''
    Sample 1: indent all lines of source file
    '''

    lines
= read_file(fn_src)
    lines
= map(lambda x: '    '+x, lines)
    write_file
(fn_dest, lines)

def win2unix(fn_src, fn_dest):
   
'''
    Sample 2: replace windows line endings (0D 0A) with unix EOL (0A)
    '''

    filedata
= read_file(fn_src, binmode=1)
    filedata
= filedata.replace('\x0d\x0a', '\x0a')
    write_file
(fn_dest, filedata, binmode=1)

Diff to Previous Revision

--- revision 1 2010-04-18 17:18:28
+++ revision 2 2010-04-18 17:18:50
@@ -1,7 +1,7 @@
 
import os
 
 __author__
= 'Denis Barmenkov <denis.barmenkov@gmail.com>'
-__source__ = 'http://code.activestate.com/recipes//'
+__source__ = 'http://code.activestate.com/recipes/577199-file-readwrite-routines/'
 
 
def read_file(fn, **kw):
     
assert os.path.isfile(fn), 'File not found: "%s"' % fn

History