Konwertowanie Unix/Windows/Mac – Python

Jeden z moich starszych projektów znalezionych na dysku napisany 09.2012 więc już ładny kawałek czasu temu.

Program miał służyć konwertowaniu plików z formatu unix/windows/mac. Nawet nie pamiętam czy się udało 😀

'''
Created on 16-09-2012

@author: DarkGL
'''

import sys
import os

sys.argv            =   sys.argv[ 1 : ]
WRITE_FILE_PREFIX   =   "YpEjMXvJ2ynjURBnUJev3RuJv8JFV4dkazGtFpmz";

def checkIsNewLine( cChar ) :
    return ( cChar == '\r' or cChar == '\n' )

def newFileName( szFile ) :
    
    ( szPath , szExst )    =   os.path.splitext( szFile );
    
    return szPath + WRITE_FILE_PREFIX + szExst;
    
def fileChange( szFile ) :
    
    try :
        fPointerRead    =   open( szFile , "rb" );
        fPointerWrite   =   open( newFileName( szFile ) , "wb" );
        
    except IOError :
        print( "Cannot open %s or %s " % ( szFile , newFileName( szFile ) ) )
        
        return False;
    
    cChar       =   fPointerRead.read( 1 );
    bEndLine    =   False; #protect from changing windows file
    
    while cChar != "" :
    
        if( checkIsNewLine( cChar ) ) :
            
            if( not bEndLine ) :
                fPointerWrite.write( '%c%c' % ( 0x0D , 0x0A ) );
                bEndLine    =   True;
            else :
                bEndLine    =   False;
        else :
            
            fPointerWrite.write( cChar );
            
            bEndLine =   False;
        
        cChar   =   fPointerRead.read( 1 );
    
    
    fPointerRead.close();
    fPointerWrite.close();
    
    os.remove( szFile );
    
    os.rename( newFileName( szFile ) , szFile );
    
    return True;

def listFolder( szPath ) :
    
    try :
   
        listDir =   os.listdir( szPath )
    
    except WindowsError :
        
        print( "Cannot list %s" % szPath )
        
        return
    
    for pObject in listDir :
        
        fullPath    =   os.path.join( szPath , pObject );
        
        if os.path.isdir( fullPath ) :
            listFolder( fullPath );
        elif os.path.isfile( fullPath ) :
            fileChange( fullPath );
            
            
for szArgs in sys.argv :
    listFolder( szArgs );       

Dodaj komentarz