Django项目没有写入文件

时间:2013-04-17 12:13:42

标签: python django

我试图在Django中附加一个文件来进行字符串替换,因为它没有写入文件。我没有阅读的问题。

views.py

with open('/home/me/dev/Django/rulebase/result.rb', 'a') as discover_reading:
    mydiscover = File(discover_reading)
    for line in mydiscover:
        line.replace('input = "', 'this')
    mydiscover.closed

我的浏览器出现此错误:

Exception Type:     IOError
Exception Value:    

File not open for reading

2 个答案:

答案 0 :(得分:1)

以下内容将替换文件的内容:

with open('/home/me/dev/Django/rulebase/result.rb', 'r') as discover_reading:
    lines = [line.replace('input = "', 'this') for line in discover_reading.readlines()]

with open('/home/me/dev/Django/rulebase/result.rb', 'w') as discover_reading:
    discover_reading.writelines(lines)

你的例子根本不起作用

请阅读file objectsstring.replace的文档。 File不是内置函数,str.replace不会就地替换(字符串是不可变的)而mydiscover.closed用于判断文件是否已关闭,不是< / em>用于关闭打开的文件。

您的原始错误被引发了,因为您试图从使用a标志打开的文件中读取行,该标志代表追加。

答案 1 :(得分:0)

您必须使用'r'标志打开它才能阅读。

open('/home/me/dev/Django/rulebase/result.rb', 'r')