2016-11-16 12 views
-2

私はPythonにはかなり新しく、ユーザー名を変更できるログインシステムを作成しようとしています。私は複数のフォーラムを行ってきましたが、何かを見つけることができません。コードで何がうまくいかないのか教えてください。このエラーは次のとおりです。AttributeError: '_io.TextIOWrapper'オブジェクトに 'replace'属性がありません。それが助けば。次のコードです:誰かがこのPythonを手伝ってくれますか?文字列をtxtファイルに置き換える

print("What would you like your username to be changed to?") 
C2 = input() 
file = open("Info.txt", 'r+') 
file.write(file.replace(A1, C2)) 
+1

'file'はファイルであり、文字列ではありません。あなたが 'file'という名前を与えられたことを考えると、なぜこれが予期せぬことになるのかははっきりしません! – jonrsharpe

+1

いくつかの問題 "A1"が定義されておらず、ファイルオブジェクトに対して文字列置換を実行しようとしています。あなたのファイルにデータをどのように格納しているのか分かりませんが、ファイルを行/トークンで読み込み、目的の行のユーザ名を新しいユーザ名に置き換えてください。 – jackarms

答えて

2

filefileオブジェクト、文字列ではありませんです!あなたは、ファイルの内容が必要な場合は、操作を行います。あなたは(メソッドreplaceを持っている)文字列としてその内容を与える

s = file.read() 

を。

戻って同じファイルにそれを書くために、あなたが書き込みモードでそれを再度開く必要があります:

file = open("Info.txt", 'w') 
file.write(s.replace(A1, C2)) 
file.close() 
+1

'replace()'を正常に呼び出すと、新しい内容を格納するためにファイルを書き直す必要があります。 –

+0

@JohnGordon本当に、私はいくつか精緻化。最初のバグがなくなれば、OPは自分自身でその問題に遭遇しているかもしれません(そしておそらく解決しようとしました)。 – schwobaseggl

0

fileは、文字列のために交換する必要があります。

variable = file.read() 
0

あなたはfileオブジェクトの呼び出しreplaceをしようとしています。ファイルオブジェクトにreplaceという名前の属性がないため、そのエラーが発生しています。

ファイルの内容を文字列に読み込むと、値を置き換えてファイルを書き換えることができます。

print("What would you like your username to be changed to?") 

C2 = input() 

contents = "" 
with open("Info.txt", 'r') as blah: 
    contents = blah.read() 

with open("Info.txt", 'w') as blah: 
    blah.write(contents.replace(A1, C2)) 
関連する問題