Python: Zeichen in Datei ersetzen

Gast #5104220
Hi,
ich würde gerne mit python Zeichen in einer Datei ersetzen. Hier mein 
Versuch:

from tempfile import mkstemp
from shutil import move
from os import fdopen, remove


with fdopen('out.txt','w') as new_file:
    with open('in.txt') as old_file:
        for line in old_file:
          newline = line.replace("a", "y")
          new_file.write(newline)

Leider bekomme ich immer die etwas kryptische Fehlermeldung:

Traceback (most recent call last):
  File "file.py", line 6, in <module>
    with fdopen('out.txt','w') as new_file:
TypeError: an integer is required

Wo soll da ein Integer benötigt werden? Ich versteh's nicht ;-)
Kongruo schrieb:
> Traceback (most recent call last):
>   File "file.py", line 6, in <module>
>     with fdopen('out.txt','w') as new_file:
> TypeError: an integer is required
>
> Wo soll da ein Integer benötigt werden? Ich versteh's nicht ;-)

nun, fdopen will als erstes Argument keinen String haben, sondern einen 
file-Deskriptor, was nunmal ein Integer ist.
Siehe https://linux.die.net/man/3/fdopen
Gast
Markus schrieb:
> Kannst Du die dort gegebene Antwort auf deutsch wiedergeben?

Hier das wichtigste:

open() erstellt neue Dateiobjekte, os.open() erstellt 
OS-Level-Dateideskriptoren und os.fdopen() erstellt ein Dateiprojekt aus 
einem Dateideskriptor.

Ein Dateideskriptor ist eine Ganzzahl, die die offene Datei in einer 
Tabelle von offenen Dateien identifiziert, die vom OS für jeden Prozess 
gehalten werden.

Dateiobjekte sind Python-Klassen, die Dateideskriptoren verpacken, um 
das Arbeiten mit Dateien bequemer und weniger fehleranfälliger zu 
machen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.