io.UnsupportedOperation: pas lisible

Je suis en train de travailler sur un problème dit de faire un programme qui reçoit une entrée d'utilisateur pour un fichier, puis dans le fichier supprime une chaîne qui spécifie l'utilisateur. Je ne suis pas sûr de savoir comment aller de ce que j'ai(ci-dessous) à ce que la question demande. Comme toujours, toute aide est grandement appréciée.

def main():
    outfile = open(input("Enter a file name: "), "a")
    string = input("Enter the string to be removed: ")
    for string in outfile.readlines():
        string = string.replace(string, "")
    outfile.close()
    print("Done")

main()

J'ai pris l'une des suggestions et a essayé de le faire fonctionner, mais comme je l'ai dit dans mon commentaire ci-dessous le code ci-dessous ne retourne pas une erreur, il crée un fichier vide. Ce qui me manque pour obtenir le nouveau fichier à l'ancien fichier avec la chaîne supprimé?

def main():
    inpath = input("Enter an input file: ")
    line = input("Enter what you want to remove: ")
    outpath = input("Enter an output file: ")
    with open(inpath, "r") as infile, open(outpath, "w") as outfile:
        for line in infile:
            outfile.write(line.replace(line, "") + "\n")
    print("Done.")

main()
vous devez ouvrir le fichier en mode lecture. Essayez "a+"
Comme une note de côté, vous avez trop de variables nommées string. vous voulez probablement string1 = input(...) et puis string = string.replace(string1,""). Enfin, vous avez réellement besoin d'écrire la chaîne de retour dans un fichier. C'est un peu difficile de remplacer des chaînes de caractères dans un fichier. Habituellement, vous créez un nouveau fichier avec le contenu modifié et puis à la fin de la journée, vous déplacez le nouveau fichier sur le dessus de l'ancien fichier.
C'est vrai, mais il ne va pas vraiment vous aider dans ce cas. Vous ne pouvez pas écrire dans le fichier dans le milieu de l'itération sur la lecture—ou, plutôt, vous pouvez, mais ça va faire des choses malheureuses, et les différents événements malheureux sur différentes plates-formes. Pourtant, c'est un point de départ—et c'est l'explication directe de l'erreur les OP le titre mentionne.
Double Possible de Python message d'erreur io.UnsupportedOperation: pas lisible
ma question est plus vieux, donc le fil que vous avez mentionné serait le double.

OriginalL'auteur John Joseph | 2012-11-13