我试图创建一个打开文件的脚本,并将每个'hola'替换为'hello'。
f=open("kk.txt","w")
for line in f:
if "hola" in line:
line=line.replace('hola','hello')
f.close()
但我得到了这个错误:
追踪(最近的呼叫最后):
文件“prueba.py”,第3行,in 对于f中的行:IOError:[Errno 9]错误的文件描述符
有什么想法吗?
哈维
答案 0 :(得分:7)
open('test.txt', 'w').write(open('test.txt', 'r').read().replace('hola', 'hello'))
或者如果你想正确关闭文件:
with open('test.txt', 'r') as src:
src_text = src.read()
with open('test.txt', 'w') as dst:
dst.write(src_text.replace('hola', 'hello'))
答案 1 :(得分:4)
您已打开文件进行书写,但您正在阅读该文件。打开原始文件进行读取,打开新文件进行写入。更换后,重命名原件和新的。
答案 2 :(得分:4)
您的主要问题是您要先打开文件进行写作。当您打开文件进行写入时,文件的内容将被删除,这使得替换变得非常困难!如果要替换文件中的单词,则需要三个步骤:
在代码中:
# open for reading first since we need to get the text out
f = open('kk.txt','r')
# step 1
data = f.read()
# step 2
data = data.replace("hola", "hello")
f.close()
# *now* open for writing
f = open('kk.txt', 'w')
# step 3
f.write(data)
f.close()
答案 3 :(得分:3)
您还可以查看with声明。