首页 > 解决方案 > 使用 fileinput 写入文件会产生问题

问题描述

for line in fileinput.FileInput("file.txt", inplace=1):
  if "success" in line:
    print(line)

当我使用文件输入时,文件'file.txt'没有被释放。我可以看到问题“file.txt”仍在使用中。当我使用正常文件操作执行上述功能时,没有显示任何问题

如何解决文件输入的问题。

我使用了下面的代码片段,但问题再次出现。我猜该文件没有关闭

f = fileinput.input("file.txt", inplace=1)
    for line in f:
      if "success" in line:
      print(line)
    f.close()

标签: pythonpython-2.7

解决方案


在 Python 2.7 中,您必须显式调用close()fileinput 实例:

try:
  f = fileinput.input("file.txt", inplace=1)
    for line in f:
      if "success" in line:
        print line, end=""
else:
  f.close()

从 Python 3.2 开始,FileInput 类可以用作上下文管理器。有关更多信息,请参阅文件输入文档

with fileinput.input(files=('file.txt'), inplace=1) as f:
  for line in f:
    if "success" in line:
      print(line)

推荐阅读