在这种情况下,open做了什么

时间:2016-09-20 17:03:37

标签: python python-3.x

sentence = "ASK NOT WHAT YOUR COUNTRY CAN DO FOR YOU ASK WHAT YOU CAN DO FOR YOUR COUNTRY"
s=sentence.split()
positions = [s.index(x)+1 for x in s]
print(sentence)
print(positions)
with open('task_2.json', 'w') as f:
    f.write(str(positions))
    f.write(str(sentence))
f.close()

在这项任务中,我必须开发一个程序,识别句子中的单个单词,将它们存储在一个列表中,并用原始句子中的每个单词替换列表中单词的位置。然后必须压缩位置并将其发送到文件。我已经设法完成了以上所有内容,但我很难理解"打开"部分。我试过使用" open"并且代码出现语法错误。所以,如果有人能够向我解释关键字"与"在这种情况下,我们将非常感激。

2 个答案:

答案 0 :(得分:0)

在这种情况下,

with会创建context manager,当close()下的缩进代码完成时,{{3}}将自动with您的文件对象。例如:

with open('task_2.json', 'w') as f:
    f.write(str(positions))
    f.write(str(sentence))

print(f.closed)

将打印True,同时:

f = open('task_2.json', 'w')
f.write(str(positions))
f.write(str(sentence))
print(f.closed)

将打印False,并且需要使用f.close()手动关闭该文件以释放系统资源。

答案 1 :(得分:0)

缩进代码运行后with open('task_2.json', 'w') as f:关闭文件。这意味着您不需要f.close()行。在python中使用with语句只是一种更安全的文件处理方式。