Seite 1 von 1

Problem mit os.open (TypeError: an integer is required)

Verfasst: Freitag 8. August 2003, 16:56
von madgonzales
Hallo! Vielleicht weiss jemand, warum es bei mir plötzlich diese Fehlermeldung gibt! Danke!

CODE:
import os
f = os.open("E:\Unidad_2.txt","r")

FEHLERMELDUNG:
Traceback (most recent call last):
File "E:\pythonPrgs\dicMan\test.py", line 3, in -toplevel-
f = os.open("E:\Unidad_2.txt","r")
TypeError: an integer is required

Re: Problem mit os.open (TypeError: an integer is required)

Verfasst: Freitag 8. August 2003, 17:43
von Voges
Hallo!

\U leitet eine Escape-Sequenz für 32-bit Unicode-Zeichen ein. Auf \U müssen noch 8 Ziffern folgen. Deswegen die Fehlermeldung, dass ein Integer erwartet wird.
2 Möglichkeiten:
- Du nutzt die Escape-Sequenz für das Backslash, nämlich "\\": "E:\\Unidad_2.txt"
- Du benutzt einfach ein Slash (sollte gehen): "E:/Unidad_2.txt"

Raw-Strings (r"E:\Unidad_2.txt") wären noch möglich, sollten aber nicht für Pfade verwendet werden, sondern eher nur für reguläre Ausdrücke.

Jan

Verfasst: Freitag 8. August 2003, 17:52
von hans
Ooops, Voges war viel schneller als ich.

Anmerkung zu os.open() aus der Doku
Note: this function is intended for low-level I/O. For normal usage, use the built-in function open(), which returns a ``file object'' with read() and write() methods (and many more).
Hans

Verfasst: Freitag 8. August 2003, 18:14
von madgonzales
Danke Ihr beiden! Super schnelle Hilfe!

Die Tipps von Voges haben bei mir nicht gefruchtet, aber der Zitat-Hinweis von hans hat's gebracht. Habe open() anstelle von os.open() verwendet und damit geht's.
Und hier auch gleich der Hinweis für ein weiteres Problem, dass sich dabei ergeben könnte: Benutzt man "from os import *" anstelle von "import os", dann wird das "open()" als "os.open()" interpretiert und das Problem bleibt..

Verfasst: Freitag 8. August 2003, 19:07
von Voges
Hallo!
madgonzales hat geschrieben:Die Tipps von Voges haben bei mir nicht gefruchtet,
Tatsächlich, stimmt. Was ich zu \U ist zwar richtig, hatte aber nichts mit der Fehlermeldung zu tun. Thema verfehlt ;-)
madgonzales hat geschrieben:Benutzt man "from os import *" anstelle von "import os", dann wird das "open()" als "os.open()" interpretiert und das Problem bleibt.
Das from bla import * sollte man möglichst vermeiden, auch wenn es verlockend ist.

Jan