我在目录中有一堆.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
答案 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
仍然是文件名字符串。