# 从sys.argv 里取第一个参数并赋值给searchterm
searchterm, sys.argv[1:] = sys.argv[1], sys.argv[2:]
for line in fileinput.input():
如果这个脚本称为mygrep.py,它可以这样用:
% python mygrep.py in *.py
found 'in' 2 times in countlines.py on line 2.
found 'in' 2 times in countlines.py on line 3.
found 'in' 2 times in mygrep.py on line 1.
found 'in' 4 times in mygrep.py on line 4.
found 'in' 2 times in mygrep.py on line 5.
found 'in' 2 times in mygrep.py on line 7.
found 'in' 3 times in mygrep.py on line 8.
found 'in' 3 times in mygrep.py on line 12.
if len(sys.argv) == 1: # 如果没有指定目录
else: # 否则用命令行指定的目录
for filename in filenames:
3.os.system
formletter = """Dear %s,\nI'm writing to you
to suggest that ...""" # 等等
myDatabase = [('Bill Clinton', 'bill@whitehouse.gov.us'),
('Bill Gates', 'bill@microsoft.com'),
('Bob', 'bob@subgenius.org')]
for name, email in myDatabase:
注:tempfile.mktemp()(返回你机器的临时文件
目录(如Unix 里的/tmp 和Windows
的c:\tmp)中未使用的文件名,)
函数是一个内置函数,它返回对应于局部名字空间的变量的字典,字典的关键字
是变量名,字典的值是变量的值
在字符串中的%(...)s 部分的名字必须与程序里的变量名匹配
4.
#!/usr/bin/env python
# find files, search for tabs
import string, os
cmd = 'find . -name " * .py" -print' # find 是一个标准Unix
工具
for file in os.popen(cmd).readlines(): # 运行find 命令
num = 1
name = file[:-1] # 去掉'\n'
for line in open(name).readlines(): # 扫描文件
os.popen
以一个shell
命令字符串作为参数,并返回一个链接到标准输入或标准输出
的文件对象,如果你没有给出一个"r"或"w"参数的话,缺省是标准输出。
string.find
在一个字符串里从左到右地找一个子串,并返回的一个位置的索引,我们用
它来找制表符,'\t'(转义的字符)。
