-1

それは機能しますが、文字を置き換えることはありません。まず、1つのファイルを開き、コンテンツを別のファイルに書き込みます。次に、2番目のファイルにいくつかの特定の文字を置き換えますが、機能しません。コード:

def  copy_file():

    f=open("cartas.txt","r")
    g=open("copiar.txt","r+")
    g.writelines(f)
    f.close()

    for line in g:
       line = line.replace("s","ch")
       g.write(line) 
    g.close()

copy_file()
4

3 に答える 3

1

を呼び出した後g.writelines(f)、の読み取りポインタgはファイルの最後にあるため、for line in g:後で繰り返すことはありません。

于 2012-06-25T17:09:55.880 に答える
1

の行を反復処理しg、変更された行をに書き込もうとしていgます。その前に、実際にコンテンツをからにコピーしfますg

あなたがしなければならないことは、それらを直接変換しながら、の行を繰り返してfそれらを書き込むことです:g

f = open('cartas.txt', 'r')
g = open('copiar.txt', 'r+')

for line in f:
    line = line.replace('s', 'ch')
    g.write(line)

f.close()
g.close()
于 2012-06-25T17:10:36.013 に答える
0

このPythonの例では、必要な置換を実行します。replaceはグローバルであるため、行ごとに置換する必要はありません。

f = open("cartas.txt","r")
g = open("copiar.txt","w")
g.write(f.read().replace('s','ch'))
g.close()
f.close()
于 2012-06-25T17:10:21.473 に答える