diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2019-03-30 08:33:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-30 08:33:02 +0200 |
commit | 172bb39452ae8b3ccdf5d1f23ead46f44200cd49 (patch) | |
tree | 5e1effbca3664b839a81eb7a7d62fa4974cfbfb1 /Tools/scripts/dutree.py | |
parent | afbb7a371fb44edc731344eab5b474ad8f7b57d7 (diff) | |
download | cpython-git-172bb39452ae8b3ccdf5d1f23ead46f44200cd49.tar.gz |
bpo-22831: Use "with" to avoid possible fd leaks in tools (part 2). (GH-10927)
Diffstat (limited to 'Tools/scripts/dutree.py')
-rwxr-xr-x | Tools/scripts/dutree.py | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/Tools/scripts/dutree.py b/Tools/scripts/dutree.py index 6b4361ac61..d25cf72b70 100755 --- a/Tools/scripts/dutree.py +++ b/Tools/scripts/dutree.py @@ -4,18 +4,18 @@ import os, sys, errno def main(): - p = os.popen('du ' + ' '.join(sys.argv[1:]), 'r') total, d = None, {} - for line in p.readlines(): - i = 0 - while line[i] in '0123456789': i = i+1 - size = eval(line[:i]) - while line[i] in ' \t': i = i+1 - filename = line[i:-1] - comps = filename.split('/') - if comps[0] == '': comps[0] = '/' - if comps[len(comps)-1] == '': del comps[len(comps)-1] - total, d = store(size, comps, total, d) + with os.popen('du ' + ' '.join(sys.argv[1:])) as p: + for line in p: + i = 0 + while line[i] in '0123456789': i = i+1 + size = eval(line[:i]) + while line[i] in ' \t': i = i+1 + filename = line[i:-1] + comps = filename.split('/') + if comps[0] == '': comps[0] = '/' + if comps[len(comps)-1] == '': del comps[len(comps)-1] + total, d = store(size, comps, total, d) try: display(total, d) except IOError as e: |