python.lang.correctness.file-object-redefined-before-close.file-object-redefined-before-close

Author
7,892
Download Count*
License
Detected a file object that is redefined and never closed. This could leak file descriptors and unnecessarily consume system resources.
Run Locally
Run in CI
Defintion
rules:
- id: file-object-redefined-before-close
patterns:
- pattern: |
$F = open($X, ...)
...
$F = open($Y, ...)
- pattern-not: |
$F = open($X, ...)
...
$F.close()
...
$F = open($Y, ...)
message: Detected a file object that is redefined and never closed. This could
leak file descriptors and unnecessarily consume system resources.
languages:
- python
severity: WARNING
metadata:
category: correctness
technology:
- python
license: Commons Clause License Condition v1.0[LGPL-2.1-only]
Examples
file-object-redefined-before-close.py
def test1():
# ruleid:file-object-redefined-before-close
fin = open("file1.txt", 'r')
data = fin.read()
fin = open("file2.txt", 'r')
data2 = fin.read()
fin.close()
def test2():
#ok:file-object-redefined-before-close
fin = open("file1.txt", 'r')
data = fin.read()
fin.close()
fin = open("file2.txt", 'r')
data2 = fin.read()
fin.close()
Short Link: https://sg.run/W81g