Python 2.7 - 我需要打开一个文件两次才能接受'w'模式

时间:2015-07-16 17:37:37

标签: python-2.7

此脚本搜索字符串并替换它。

第一个脚本可以工作,但是如果你注意到我必须再次打开文件并给它'w'模式。

在第二个脚本上,我尝试在同一行中打开文件,我使用“with”但它不起作用。它抱怨

IOError: File not open for writing

为什么会这样?我究竟做错了什么?即使我很高兴第一个脚本工作,它看起来效率低下。

oldstr = 'Time'
newstr = 'TIME'
file_path = '/home/gmastrokostas/PycharmProjects/learning/file.csv'
fopen = open(file_path)
with fopen as f:
    filedata = fopen.read()
    strg = filedata.replace(oldstr, newstr)
    fopen = open(file_path,'w')
    fopen.write(strg)
    fopen.close()

--------------------------------------

oldstr = 'Time'
newstr = 'TIME'
file_path = '/home/gmastrokostas/PycharmProjects/learning/file.csv'
with open(file_path, 'w')  as f:
    filedata = fopen.read()
    strg = filedata.replace(oldstr, newstr)
    fopen.write(strg)
    fopen.close()

2 个答案:

答案 0 :(得分:0)

为什么你不能在第一次通话时传递'w'参数? 而且你不需要关闭文件,如果你'打开',它会关闭它。

答案 1 :(得分:0)

而不是'w'使用'r +'。这将打开文件进行读写。