linux-l: Problem mit Python und regulaeren Ausdruecken

Fabian Walk fabian at narf.in-berlin.de
Di Apr 24 20:18:03 CEST 2001


On Tue, Apr 24, 2001 at 01:25:09PM +0200, Guntram Trebs wrote:
> Ansonsten in php mit perl-regulären ausdrücken: (nicht getestet)
> 
> function convert_filename( $subject) {
>   $pattern = array();
>   $replacement = array();
>   $pattern[] = "[|&;()<>\[\]]";
>   $replacement[] = "";
>   $pattern[] = "[\\s]";
>   $replacement[] = "_";
>   return ereg_replace($pattern, $replacement, $subject);
> }
> 
Danke Guntram,
dein kleines php beispiel hat mir die augen geöffnet nun funktionierts.
Ich muss nur noch testen wie schnell das script arbeitet falls noch
wer tips zur optimierung hat nur zu :)

Hier die aktualliesierte rename routine:
--- snip ---
def renamefile(file):
    special_char = re.compile("(\||\&|;|\(|\)|<|>|\[|\]|-)")
    spaces = re.compile("\s+")
    
    file_path = os.path.dirname(file)
    file_alt = os.path.basename(file)
    file_neu = os.path.normcase(string.lower(file_alt))
    file_neu = re.sub(special_char,"",file_neu)
    file_neu = re.sub(spaces,"_",file_neu)
    if file_alt == file_neu:
        return
    if v_flag == 1:
        print file_alt + " --> " + file_neu
    try:
        os.rename(os.path.join(file_path,file_alt), os.path.join(file_path,file_neu))
    except IOError:
        usage("File rename failed")
--- snap ---
-- 
E-Mailadresse  : Fabian Walk <fabian at tuxianer.de>
Homepage       : http://www.tuxianer.de/
ICQ UIN        : 2884452
Key fingerprint: 9324 8559 621A 8821 17FE  71A9 BE33 DA36 EFB6 D8E9




Mehr Informationen über die Mailingliste linux-l