"语法错误,打开(文件,' r +'):"

时间:2015-02-03 12:11:28

标签: python

我在目录中有一堆.csh,我想逐个打开它们,搜索" //"并将其替换为" /"用python脚本。我该怎么做?

我试过了:

import os
for file in os.listdir("./"):
    if file.endswith(".csh"):
        with open(file, 'r+'):
            data = file.read().replace("//", "/")
            f.write(data)
            f.close()

但它给了我:

File "script.py", line 4
    with open(file, 'r+'):
            ^
SyntaxError: invalid syntax

2 个答案:

答案 0 :(得分:2)

将您的代码更改为

import os
for file in os.listdir("./"):
    if file.endswith(".csh"):
        with open(file, 'r+') as f:
            data = f.read()
            f.seek(0)

        with open(file, 'w+') as w:
            dat = data.replace("//", "/")
            w.write(dat)

答案 1 :(得分:2)

您使用的是旧版本的Python。 The with statement was introduced in Python 2.5,必须通过

启用
from __future__ import with_statement

最好升级到2.7,如果你需要留在2.x行,或3.4。

请注意,您还需要根据Avinash Raj的答案更改代码,通过as f捕获变量中的文件对象。 file.read()将无效,因为file仍然是文件名字符串。