当前位置: 首页 > 面试题库 >

用于打开行(文件名)

袁高明
2023-03-14
问题内容

我经常看到类似于

for line in open(filename):
    do_something(line)

文件名何时会被该代码关闭?

写会更好吗

with open(filename) as f:
    for line in f.readlines():
        do_something(line)

问题答案:

filename超出范围时将关闭。那通常是方法的结束。

是的,最好使用with

一旦有了文件对象,就可以通过调用该对象的方法来执行所有文件I / O。[…]处理完文件后,应该通过close在对象上调用方法来结束与文件的连接:

input.close()

在简短的脚本中,人们通常会省略此步骤,因为在垃圾回收期间回收文件对象时,Python会自动关闭文件(这在主流Python中意味着该文件会立即被关闭,尽管其他重要的Python实现(例如Jython和IronPython,还有其他更宽松的垃圾收集策略)。但是,最好的编程方法是尽快关闭文件,在较大的程序中尤其要好,否则可能会冒大量无用打开文件的危险。请注意,即使当函数由于未捕获的异常而终止时,try/finally也特别适合于确保文件被关闭。

Python食谱,第59页。



 类似资料:
  • 我试图将openFiles()方法的内脏移到actionPerformed()方法中的相应位置,但仍然没有起作用。但是,在另一个人用于不同目的的代码中,showOpenDialog()方法在从actionPerformed方法内部调用的方法中工作。代码如下: 谢谢你的帮助。

  • 打开文件 有了上述分析后,我们可以看看如果一个用户进程打开文件会做哪些事情?首先假定用户进程需要打开的文件已经存在在硬盘上。以user/sfs_filetest1.c为例,首先用户进程会调用在main函数中的如下语句: int fd1 = safe_open("sfs\_filetest1", O_RDONLY); 从字面上可以看出,如果ucore能够正常查找到这个文件,就会返回一个代表文件的文

  • 在这节,我们使我们的应用程序展示命令行传来的文件的正文。 在这后面,我们为我们的应用程序的窗口子类增加了一个私有的结构体,结构体内是一个指向GtkStack的指针。gtk_widget_class_bind_template_child_private()函数使得在实例化模板后,私有结构体中的stack成员会指向模板中的同名部件。 ... struct _ExampleAppWindowPriv

  • 问题内容: 作为一个小项目,我认为制作文本编辑器会很酷。我目前无法打开文件。这是我打开文件的代码(是,打开是): 尝试块给我带来了麻烦。Eclipse表示未定义type 。似乎也未定义。有另一种方法可以解决此问题,或另一种工作原理相同的方法吗? 问题答案: 你需要调用在一旦返回,所以更改您的代码:

  • 我需要在我的windows机器到UNIX服务器之间建立一个隧道,并希望自动化这个过程,以便在启动时为我生成隧道。 我用ssh和autossh安装了Cygwin,以连接到远程服务器,手动建立连接,并确认连接正常工作。这个过程涉及3个命令,这并不是很多,但这将是伟大的自动化。 包括。exe文件在内的第一部分用于打开Cygwin窗口,但我没有成功地将脚本输入其中。我甚至尝试在引用脚本文件之前包含一个--

  • 问题内容: 是否可以为工作过程增加“最大打开文件数”参数?我的意思是这个参数: 感谢您的建议 问题答案: 作为系统管理员 :在大多数Linux安装中,此文件控制此文件;它允许您设置每个用户的限制。您需要一条像这样的线。 在一个进程内 :getrlimit和setrlimit调用控制大多数每个进程的资源分配限制。控制文件描述符的最大数量。您将需要适当的权限才能调用它。