mirror of
https://github.com/python/cpython.git
synced 2025-10-08 08:01:55 +00:00
close files correctly
This commit is contained in:
parent
bbb0412ad1
commit
b2fda23922
1 changed files with 12 additions and 11 deletions
23
Lib/trace.py
23
Lib/trace.py
|
@ -404,16 +404,16 @@ def find_strings(filename, encoding=None):
|
||||||
# If the first token is a string, then it's the module docstring.
|
# If the first token is a string, then it's the module docstring.
|
||||||
# Add this special case so that the test in the loop passes.
|
# Add this special case so that the test in the loop passes.
|
||||||
prev_ttype = token.INDENT
|
prev_ttype = token.INDENT
|
||||||
f = open(filename, encoding=encoding)
|
with open(filename, encoding=encoding) as f:
|
||||||
for ttype, tstr, start, end, line in tokenize.generate_tokens(f.readline):
|
tok = tokenize.generate_tokens(f.readline)
|
||||||
if ttype == token.STRING:
|
for ttype, tstr, start, end, line in tok:
|
||||||
if prev_ttype == token.INDENT:
|
if ttype == token.STRING:
|
||||||
sline, scol = start
|
if prev_ttype == token.INDENT:
|
||||||
eline, ecol = end
|
sline, scol = start
|
||||||
for i in range(sline, eline + 1):
|
eline, ecol = end
|
||||||
d[i] = 1
|
for i in range(sline, eline + 1):
|
||||||
prev_ttype = ttype
|
d[i] = 1
|
||||||
f.close()
|
prev_ttype = ttype
|
||||||
return d
|
return d
|
||||||
|
|
||||||
def find_executable_linenos(filename):
|
def find_executable_linenos(filename):
|
||||||
|
@ -421,7 +421,8 @@ def find_executable_linenos(filename):
|
||||||
try:
|
try:
|
||||||
with io.FileIO(filename, 'r') as file:
|
with io.FileIO(filename, 'r') as file:
|
||||||
encoding, lines = tokenize.detect_encoding(file.readline)
|
encoding, lines = tokenize.detect_encoding(file.readline)
|
||||||
prog = open(filename, "r", encoding=encoding).read()
|
with open(filename, "r", encoding=encoding) as f:
|
||||||
|
prog = f.read()
|
||||||
except IOError as err:
|
except IOError as err:
|
||||||
print(("Not printing coverage data for %r: %s"
|
print(("Not printing coverage data for %r: %s"
|
||||||
% (filename, err)), file=sys.stderr)
|
% (filename, err)), file=sys.stderr)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue