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

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
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
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

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
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

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
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..
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

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
Antworten