将“source.txt”放到变量中:
source = open('/home/user/tmp/python/source.txt','r')
with source as f:
[...]
脚本不运行,为什么?以下脚本运行:
#!/usr/bin/python
with open('/home/user/tmp/python/source.txt','r') as f:
for line in f:
if 'www.yahoo.it' in line:
print (line)
答案 0 :(得分:3)
第一种情况确实在运行,但它只是打开一个文件并将文件对象绑定到变量source
。它没有做任何进一步的事情。如果您想要阅读文件的内容,您需要迭代它的行(如第二个示例中所示),或者调用source.read()
来读取数据。
source = open('/home/user/tmp/python/source.txt','r')
for line in source:
if 'www.yahoo.it' in line:
print(line)
source.close()
你问题的第二个例子更好,因为它保证在退出上下文处理程序(with
语句)时文件将被关闭。