将打开文件放入变量

时间:2016-01-03 10:45:25

标签: python

将“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)

1 个答案:

答案 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语句)时文件将被关闭。