with
только сохраняет файл открытым в пределах блока отступа. Попробуйте:
import mechanize, fileinput
with open('F:\Python\url_list2.txt') as urls:
content = urls.readlines()
print urls # file still open.
print content
В основном с является синтаксическим сахаром для общего try except finally
шаблона:
try:
urls = open('F:\Python\url_list2.txt')
# rest of indented block
finally:
urls.close()
# stuff outside of indented block
Итак, ваш код переводится в:
import mechanize, fileinput
try:
urls = open('F:\Python\url_list2.txt')
# rest of indented block
content = urls.readlines()
finally:
urls.close()
# stuff outside of indented block.
print urls
Итак, вы видите, почему ваш URL-адрес отображается как закрытый файл ... вы просто закрыли его, выйдя из блока отступа with
. Возможно, вы захотите print content
увидеть content
, который вы загрузили в переменную из закрытого файла urls
.