Seite 1 von 1

Änderung im Verzeichnis ausschließen

Verfasst: Sonntag 13. März 2016, 09:37
von André Lieske
Hallo Profis,
ich arbeite mit Notepad++ und Python-Script.
der nachfolgende Code ersetzt Inhalte von Dateien in mehreren Verzeichnissen
Funktioniert auch ohne Probleme, habe aber ein Unterverzeichnis "broker" das nicht geändert werden soll.
Wie kann ich erreichen das, dass Verzeichnis nicht geändert wird?

Code: Alles auswählen

import os;
import sys;
###################################################################
# Pfad zum Stage-Ordner von SmartStore                            #
# Pfad bitte anpassen!                                            #
# Die doppelten Backslashes ( \\ ) im Pfad muessen vorhanden sein #
###################################################################

filePathSrc="C:\\Users\\Andre\\Documents\\SmartStore.biz Projekte\\SM6\\Lieske Andre\\Stage\\" 


###############################
# AB HIER NICHTS MEHR AENDERN #
###############################

for root, dirs, files in os.walk(filePathSrc):
    for fn in files:
        if fn[-4:] == '.php': 
            notepad.open(root + "\\" + fn)
            notepad.runMenuCommand("Kodierung", "Konvertiere zu ANSI")
            notepad.runMenuCommand("Kodierung", "Konvertiere zu UTF-8 ohne BOM")
            editor.replace('iso-8859-1', 'UTF-8')
            notepad.save()
            notepad.close()       

Re: Änderung im Verzeichnis ausschließen

Verfasst: Sonntag 13. März 2016, 11:38
von Sirius3
@André Lieske: walk liefert in jedem Schritt eine Liste dirs, die man auch verändern und somit auswählen kann, welche Unterverzeichnisse durchwandert werden sollen.

Code: Alles auswählen

import os

FILEPATH = "C:\\Users\\Andre\\Documents\\SmartStore.biz Projekte\\SM6\\Lieske Andre\\Stage\\" 

def convert(filename):
    with open(filename, 'rb') as input:
        text = input.read().decode('iso-8859-1')
    text = text.replace('iso-8859-1', 'UTF-8')
    with open(filename + '.xxx', 'wb') as output:
        output.write(text.encode('UTF-8'))
    os.rename(filename + '.xxx', filename)

for root, dirs, files in os.walk(FILEPATH):
    dirs[:] = [d for d in dirs if d != 'broker']
    for filename in files:
        if filename.endswith('.php'):
            convert(os.path.join(root, filename))

Re: Änderung im Verzeichnis ausschließen

Verfasst: Sonntag 13. März 2016, 12:14
von André Lieske
Hallo Sirius3,
danke für das Feedback.
Das Scrip läuft bei mir leider nicht,
Woran kann das liegen?

Müssen die doppelten Backslashes noch sein?

Re: Änderung im Verzeichnis ausschließen

Verfasst: Sonntag 13. März 2016, 13:01
von Sirius3
@André Lieske: ohne Fehlermeldung kann man da ja nicht sagen, warum etwas nicht läuft.

Re: Änderung im Verzeichnis ausschließen

Verfasst: Sonntag 13. März 2016, 13:13
von André Lieske
Hallo Sirius3,
leider gibt es keine Fehlermeldung, hätte diese gepostet.
Ich merke es daran das die Dateien nicht geöffnet werden.

Re: Änderung im Verzeichnis ausschließen

Verfasst: Sonntag 13. März 2016, 13:18
von BlackJack
@André Lieske: Nur um Missverständnisse zu vermeiden: Surius3 hat ein eigenständiges Python-Programm geschrieben. Also falls Du erwartest, das Notepad++ da jetzt irgendwas macht (Fenster/Tabs öffnen beispielsweise), das tut es natürlich nicht.

Re: Änderung im Verzeichnis ausschließen

Verfasst: Sonntag 13. März 2016, 14:10
von André Lieske
Hallo BlackJack,
davon bin ich ausgegangen, das der Copde unter Notepad++ funktioniert.
Dann hilft mir das nicht weiter.
Wie kann ich das unter Notepad bewerkstelligen?

Re: Änderung im Verzeichnis ausschließen

Verfasst: Sonntag 13. März 2016, 14:23
von Sirius3
@André Lieske: dass Du nihts siehst, heißt ja nicht, dass es nicht funktioniert.

Re: Änderung im Verzeichnis ausschließen

Verfasst: Sonntag 13. März 2016, 14:25
von André Lieske
Hallo Sirius3,
das stimmt, die Dateien sind aber unverändert.