Seite 1 von 2

Fehler unterdrücken?

Verfasst: Samstag 28. August 2004, 15:43
von N17R0
Hallo,
also es geht darum, dass ich eine url datei öffnen möchte, aber immer kommt:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:/Programme/Python/startfile.py", line 2, in -toplevel-
    os.startfile('C:/downloads/ru.url')
WindowsError: [Errno 2] Das System kann die angegebene Datei nicht finden: 'C:/downloads/ru.url'
vom Prinzip her nicht schlimm, weil er das File trotzdem öffnet und denn man eine URL von Windows aus (mit Doppelklick) öffnet kommt auch vom Inhalt die gleiche Meldung. Aber ich wollt eigentlich wissen, ob es möglich ist, dass der Fehler nicht angezeigt wird, aber das File trotzdem geöffnet wird.

Verfasst: Samstag 28. August 2004, 17:08
von hans
Ich muß nocheinmal nachfragen. Wenn du im Explorer einen Doppeklick auf besagte Datei machst, dann bekommst du auch eine Fehlermeldung? Wenn ja, dann lass dir nicht einreden dass das kein Bug sondern ein Feature sei. Vielleicht stimmen in dem Fall deine Dateiverknüpfungen nicht.

Hans

Verfasst: Samstag 28. August 2004, 17:11
von N17R0
es geht um die url datein vom IE. also die favorieten. sorry, falls ich mich falsch ausgedrückt hab. um im normalfall öffnet man die ja mit'm IE, aber denn man die im explorer öffnet, kriegt man ne Fehlermeldung.

Verfasst: Samstag 28. August 2004, 17:39
von Milan
Hi. Das letztere hättest du mal besser oben hingeschrieben, ich hab mich nämlich schon gewundert was du amchen wolltest: eine scheinbar nicht existierende Datei ohne Fehler im IE öffnen und ... :wink:

Nun ja. Erstens: .url Dateien sind normalerweise verknüpft mit dem IE, aber das kann ja verstellt wurden sein... dann funktioniert das öffnen aus dem Explorer nicht. Das ist aber eine Einstellungsfrage und hat mit Python wenig zu tun.
Zweitens: laut Fehlermeldung existiert die Datei ja nicht. Bist du sicher, dass der Pfad stimmt?
Drittens: Würde ich das nicht über startfile machen. Das ruft zwar bei richtig eingestellter Dateiverknüpfung das richtige Programm auf, aber verlass dich da nicht drauf. Du kannst einen Fehler ja ganz einfach mit try-except abfangen, wenn er denn nur Python begründet ist.
Viertens: Würde ich sichergehen, dass Windows den Fehler verursacht und hier lieber die Datei öffnen, die Adresse auslesen und dann die URL öffnen lassen:

Code: Alles auswählen

import re,webbroser
f=file("C:/downloads/ru.url","r")
webbrowser.open_new(re.compile("\[InternetShortcut\]\nURL=([^\n\Z]*)(?:\n|\Z)",re.I).findall(f.read()))
f.close()

Verfasst: Samstag 28. August 2004, 17:48
von N17R0
also zu
2.: ja, die datei ist vorhanden, er öffnet sie ja auch mit dem eingestelltem browser, aber eben mit der fehler meldung
3.: danke, werd ich mal probieren. dann

Code: Alles auswählen

except WindowsError: pass
nichwa?
4.: da krieg ich nur

Code: Alles auswählen

Traceback (most recent call last):
  File "C:/Programme/Python/urlbrowser.py", line 4, in -toplevel-
    webbrowser.open_new(re.compile("[InternetShortcut]([^\n\Z]*)(?:\n|\Z)",re.I).findall(f.read()))
  File "C:\PROGRA~1\Python\Lib\webbrowser.py", line 46, in open_new
    get().open(url, 1)
  File "C:\PROGRA~1\Python\Lib\webbrowser.py", line 250, in open
    os.startfile(url)
TypeError: startfile() argument 1 must be string, not list
zurück und außerdem hab ich keine ahnung, was du damit

Code: Alles auswählen

([^\n\Z]*)(?:\n|\Z)
machst.

Verfasst: Samstag 28. August 2004, 17:56
von Milan
Hi.

zu 3.) jo

zu 4.) ich les alle Zeichen bis zum Ende der Zeile bzw Ende des Strings aus. ([^\n\Z]*) sind alle Zeichen, die nicht die Zeile umbrechen, also eine Zeile und mit (?:\n|\Z) sag ich danach kommt nix mehr :wink: .
Aber hast recht, ich hab ein [0] vergessen:

Code: Alles auswählen

import re,webbrowser 
f=file("C:/downloads/ru.url","r") 
webbrowser.open_new(re.compile("\[InternetShortcut\]\nURL=([^\n\Z]*)(?:\n|\Z)",re.I).findall(f.read())[0]) 
f.close()
Alternativ gehts auch ohne re:

Code: Alles auswählen

import webbrowser
f=file("C:/downloads/ru.url","r")
for line in f:
    if line=="[InternetShortcut]\n":
        url=f.readline().split("=",1)[1].replace("\n","")
        break
f.close()
webbrowser.open_new(url)

Verfasst: Samstag 28. August 2004, 18:04
von N17R0
ok, also bei dem 1. gibt er genauso die gleiche fehlermeldung aus, funktioniert aber und das 2. läuft irgendwie garnich ^^ gibt auch nur ne fehlermeldung aus, geht aber nichma ;)

übrigens

Code: Alles auswählen

import browser
du hattest immer import broser geschrieben

Verfasst: Samstag 28. August 2004, 18:13
von Dookie
und was für eine Fehlermeldung? Währ sicher hilfreich das zu wissen, könnte ja auch an Deiner Pythoninstallation was fehlerhaft sein oder du hast ein Modul mit dem Namen browser.py oder ...


Gruß

Dookie

Verfasst: Samstag 28. August 2004, 18:17
von N17R0

Code: Alles auswählen

Traceback (most recent call last):
  File "C:/Programme/Python/urlbrowser.py", line 5, in -toplevel-
    url=f.readline().split("=",1)[1].replace("\n","")
IndexError: list index out of range
wenn man jetzt aus der [1] nen [0] macht, öffnet sich der ordner, wo python installiert is ^^

Verfasst: Samstag 28. August 2004, 18:23
von Dookie
*.url Dateien scheinen so aufgebaut zu sein:

Code: Alles auswählen

name=http://www.bla.bla/
Das scheint aber in dem Fall nicht so zu sein?


Gruß

Dookie

Verfasst: Samstag 28. August 2004, 18:37
von DER Olf
afaik lassen sich doch .url dateien _nur_ vom IE öffnen, da kann also nix verstellt sein ;)

mozilla o. opera würde doch sicher einen fehler ausgeben, oder?

mfg Olf

Verfasst: Samstag 28. August 2004, 19:31
von Milan
HI.
@olf: nein, mein Opera zickt da nicht rum und höhrt da brav drauf. Am besten wäre es, den INhalt der besagten Datei mal genau zu kennen. Eine ".url" - Favoritendatei sieht z.B. so aus, wobei [InternetShortcut] immer definiert sein sollte.

Code: Alles auswählen

[DEFAULT]
BASEURL=http://www.uni-bayreuth.de/departments/didaktikchemie/umat/silicatstrukturen1/silicat1.htm

[InternetShortcut]
URL=http://www.uni-bayreuth.de/departments/didaktikchemie/umat/silicatstrukturen1/silicat1.htm
Modified=E066D9C58709C30138
@Dookie: da scheinst du recht zu haben...
mfg Milan

Verfasst: Samstag 28. August 2004, 20:32
von DER Olf
oh...jetzt ist mein Weltbild zerstört...

mit mozilla hab ichs irgendwie nicht hinbekommen, und selbst mit dem Notepad ließen sich diese Dateien nicht öffnen.

@N17R0: hattest du die möglichkeit auf nem anderen system zu testen?
ob da der fehler auch kommt?

mfg Olf

Verfasst: Samstag 28. August 2004, 22:13
von N17R0
Ne, leider nicht. ich meine ist ja nicht so schlimm, mit try & except funktionierts ja, aber find den Fehler schon irgendwie komisch.

interessant wär für mich noch, wie sich der Wert von "Modified" errechnen lässt. weiß da jemand was oder ist das immer das gleiche?

Verfasst: Samstag 28. August 2004, 23:09
von DER Olf
was meinst du jetzt mit Modified?

mfg Olf

Verfasst: Sonntag 29. August 2004, 07:03
von N17R0
[InternetShortcut]
URL=http://www.uni-bayreuth.de/departments/ ... licat1.htm
Modified=E066D9C58709C30138
das Modified mein ich... ich meine die urls funktionieren auch ohne diesen Eintrag, aber wär doch schon ganz interessant zu wissen.

Verfasst: Sonntag 29. August 2004, 10:50
von DER Olf
hm.... dann guck ma bei microsoft.com *höhö*
die werden dir bestimmt gern helfen :lol:

kennst du vllt. ein windoof-forum?

da kannst du vllt. hilfe bekommen. aber die sind meistens nicht so kompotent :-/

mfg Olf

Verfasst: Sonntag 29. August 2004, 11:01
von N17R0
:wink: hät ja sein könne, dass das jemand weiß :)

Danke soweit. Funktioniert jetzt so, wie ich mir das vorgestellt habe :D

Verfasst: Sonntag 29. August 2004, 11:09
von Milan
N17R0 hat geschrieben:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:/Programme/Python/urlbrowser.py", line 5, in -toplevel-
    url=f.readline().split("=",1)[1].replace("\n","")
IndexError: list index out of range
wenn man jetzt aus der [1] nen [0] macht, öffnet sich der ordner, wo python installiert is ^^
Dann ist definitiv was in der Datei nicht in Ordnung, wenn ich meinen Code bei mir über eine Datei laufen lasse funktioniert er nämlich (und zwar beide Varianten). Ich tippe mal darauf, dass zwar eine URL drin steht, aber nicht in der erwarteten Form, sodass alle Methoden die zu öffnen meckern (tut ja auch os.startfile). Bitte gibt doch mal an, was drin steht :? ...

Verfasst: Sonntag 29. August 2004, 11:24
von N17R0
also in der datei steht:

Code: Alles auswählen

[InternetShortcut]\r\n
URL=http://www.microsoft.com/isapi/redir.dll?prd=windows&sbp=mediaplayer&plcid=&pver=6.1&os=&over=&olcid=&clcid=&ar=Media&sba=RadioBar&o1=&o2=&o3=\r\n
Modified=4099BBE7F260C40192\r