【发布时间】:2012-11-02 10:53:11
【问题描述】:
我正在处理一个问题,它说要制作一个程序来获取用户对文件的输入,然后在文件中删除用户指定的字符串。我不知道如何从我所拥有的(下面)到问题所要求的。一如既往,非常感谢任何和所有帮助。
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()
我接受了其中一个建议并试图让它工作,但正如我在下面的评论中所说,下面的代码不会返回错误,它会创建一个空文件。为了使新文件成为删除字符串的旧文件,我缺少什么?
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()
【问题讨论】:
-
您必须以读取模式打开文件。试试
"a+" -
附带说明,您有太多名为
string的变量。你可能想要string1 = input(...),然后是string = string.replace(string1,"")。最后,您实际上需要将字符串写回文件中。就地替换文件中的字符串有点困难。通常,您使用修改后的内容创建一个新文件,然后在一天结束时将新文件移到旧文件之上。 -
@JBernardo:确实如此,但在这种情况下并没有真正的帮助。你不能只是在迭代读取文件的过程中写入文件——或者更确切地说,你可以,但它会做不愉快的事情,并且在不同的平台上会做不同的不愉快的事情。尽管如此,它仍然是一个起点——它是对 OP 标题提到的错误的直接解释。
-
@user60561 我的问题较旧,因此您提到的线程将是重复的。
标签: python python-3.x