Datei mit Leerzeichen öffnen
Verfasst: Freitag 1. Juli 2011, 14:40
Hallo wehrte Gemeinde,
ich habe ein kleines Script welches mir eine Datei öffnen soll und den Inhalt in eine Liste speichert. Kein Problem für Dateien ohne Leezeichen. So weit so gut. Beim öffnen von Dateien mit Leerzeichen gibt es aber Probleme.
Folgende Datei möchte ich öffnen:
Jetzt mal der Codeschnipsel der die Datei öffnen soll:
Ergebnis ist dann:
Selbst wenn ich den Pfad so wie ich ihn auf der Shell nutze Hardcoded in das Skript eingebe, also:
Erhalte ich einen IOError:
Bedankt!
ich habe ein kleines Script welches mir eine Datei öffnen soll und den Inhalt in eine Liste speichert. Kein Problem für Dateien ohne Leezeichen. So weit so gut. Beim öffnen von Dateien mit Leerzeichen gibt es aber Probleme.
Folgende Datei möchte ich öffnen:
Die Datei stammt aus einem Windows System und wird auf einem Linux Rechner gespeichert. Daher der etwas seltsame Pfad. Der Dateiname entspricht dem kompletten Pfad aus dem Windows System und muss auch so erhalten bleiben!ls
/omd/sites/testenv/var/check_mk/logwatch/A0006478/C:\Program Files (x86)\Matrix42\Matrix42 Service Store\Logs\HostCommon.log
Jetzt mal der Codeschnipsel der die Datei öffnen soll:
Code: Alles auswählen
if re.match('LOG', servicename):
print('Ein LOG Service')
logpath = basedir + '/var/check_mk/logwatch/' + hostname + '/' + servicename.split('LOG ')[-1]
#logpath = os.path.normpath(logpath)
print (logpath)
#print (logpath)= /omd/sites/testenv/var/check_mk/logwatch/A0006478/C:\Program Files x86\Matrix42\Matrix42 Service Store\Logs\HostCommon.log
file = open(logpath, 'r')
for line in file.readlines():
if re.match('W', line) or re.match('C', line):
#print(line)
loglines.append(line + '\n')
loglines = ''.join(loglines)
Auch aus der shell kann das File nur aufgerufen werden wenn man Sonderzeichen und Leerzeichen escaped:IOError: [Errno 2] No such file or directory: '/omd/sites/testenv/var/check_mk/logwatch/A0006478/C:\\Program Files x86\\Matrix42\\Matrix42 Service Store\\Logs\\HostCommon.log'
Wie bekomme ich das jetzt elegant mit Python hin?cat var/check_mk/logwatch/A0006478/C\:\\Program\ Files\ \(x86\)\\Matrix42\\Matrix42\ Service\ Store\\Logs\\HostCommon.log
Selbst wenn ich den Pfad so wie ich ihn auf der Shell nutze Hardcoded in das Skript eingebe, also:
Code: Alles auswählen
logpath = "omd/sites/testenv/var/check_mk/logwatch/A0006478/C\:\\Program\ Files\ \(x86\)\\Matrix42\\Matrix42\ Service\ Store\\Logs\\HostCommon.log"
Ihr seit meine letzte Hoffnung bevor ich wahsinnig werde.................IOError: [Errno 2] No such file or directory: 'omd/sites/testenv/var/check_mk/logwatch/A0006478/C\\:\\Program\\ Files\\ \\(x86\\)\\Matrix42\\Matrix42\\ Service\\ Store\\Logs\\HostCommon.log'
Bedankt!