-1

它确实有效,但不能代替字母。首先,我打开一个文件,然后将内容写入另一个文件。然后到第二个文件,我替换了一些特定的字母,但它不起作用,有什么想法吗?编码:

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

您正在尝试遍历 in 中的行g并将修改后的行写入g. 在此之前,您实际上将内容从复制fg.

您应该做的是在直接转换它们的同时迭代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 示例将执行您需要的替换,因为替换是全局的,您不需要逐行替换:

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 回答