【发布时间】:2018-07-01 15:43:47
【问题描述】:
我正在完成将我的代码从 python2.7 移动到 python3.5 并打开 warnings 以检查另一个模块。
使用os.popen() 时出现以下错误。
ResourceWarning: unclosed file <_io.TextIOWrapper name=3 encoding='UTF-8'>
上例“name=3”中的数字会根据代码发生变化,但始终是整数。
这段代码 sn -p 产生错误,但没有打开文件,这与错误消息 unclosed file 完全冲突。
我的环境是使用python 3.5.2的Linux
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
import warnings
import os
warnings.simplefilter('default')
sink_list = os.popen('pacmd list-sinks | grep "name:" | cut --delimiter=: -f2').readlines()
print (sink_list)
sink = os.popen('pacmd list | grep "Default sink name" | cut --delimiter=: -f2').readline()
print(sink)
结果如下:
test.py:6: ResourceWarning: unclosed file <_io.TextIOWrapper name=3 encoding='UTF-8'>
sink_list = os.popen('pacmd list-sinks | grep "name:" | cut --delimiter=: -f2').readlines()
[' <alsa_output.pci-0000_00_1b.0.analog-stereo>\n', ' <fs2-Equaliser>\n', ' <fs2-bs2b>\n']
test.py:8: ResourceWarning: unclosed file <_io.TextIOWrapper name=3 encoding='UTF-8'>
sink = os.popen('pacmd list | grep "Default sink name" | cut --delimiter=: -f2').readline()
fs2-Equaliser
有谁知道为什么会发出这个警告,尤其是在这种情况下,没有文件被打开?
【问题讨论】:
标签: python python-3.x warnings popen