使用glob、sys、re和os模块的脚本有两个问题。该脚本枚举目录并在所有文件中搜索字符串。如果我将绝对路径分配给变量,但不执行正则表达式,它就会运行。我需要更改脚本以使用sys。argv,以便用户可以在终端中指定路径(例如:
./replace_students.py /home/alex/Documents/
"dirname = "/home/alex/Documents/""
到
"dirname = sys.argv[1:]"
我得到了错误
“TypeError:强制为Unicode:需要字符串或缓冲区,找到列表”。
import os, glob, sys, re
#dirname = "/home/alex/Documents"
dirname = sys.argv[1:]
os.listdir(dirname)
for filename in glob.glob('*'):
with open(filename) as f:
contents = f.read()
if 'students' in contents:
contents = contents.replace(r" students", "pupils")
print contents