import sys def process_file(filename): '''Open, read, and print a file.''' input_file = open(filename, "r") for line in input_file: line = line.strip() print line input_file.close() if __name__ == '__main__': process_file(sys.argv[1])
此代码的运行方式为 python 文件名 sys.argv[1]。但是此程序只能处理文本,对于其他输入流无能为力。
修改一下代码,在该函数的外面打开文件(或者URL或标准输入流),然后再把得到的文件对象传给它
import sys def process_file(reader): '''Open, read, and print a file.''' for line in reader: line = line.strip() print line if __name__ == '__main__': input_file = open(sys.argv[1], "r") process_file(input_file) input_file.close()
若使用该函数(process_file)处理网页或是本地文件:
import sys import urlib def process_file(reader): '''Open, read, and print a file.''' for line in reader: line = line.strip() print line if __name__ == '__main__': webpage = urllib.urlopen(sys.argv[1]) process_file(webpage) webpage.close()