文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
使用 generator 节省记忆体和组合相似的操作
串接不同的操作
def read_line(filename):
return (line.decode('utf8').rstrip('\n') for line in open(filename))
def filter_comment(lines):
return (line for line in lines if not line.startswith('#'))
def filter_empty(lines):
return (line for line in lines if line)
def some_process(filename):
for line in filter_empty(read_line(filename)):
...
def another_process(filename):
for line in filter_comment(filter_empty(read_line(filename))):
...
將多層迴圈縮成一層迴圈
def read_files(filenames):
for name in filenames:
for line in open(name):
yield line.decode('utf8').rstrip('\n')
def grep(pattern, filenames):
for line in read_files(filenames):
if re.match(pattern, line):
print line
def cat(filenames):
for line in read_files(filenames):
print line
若需要走訪整個目錄下所有檔案,可以使用 os.walk。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论