我正在完成将代码从python2.7移至python3.5的操作,然后打开warnings以检查另一个模块。
使用os.popen()时,出现以下错误。
ResourceWarning: unclosed file <_io.TextIOWrapper name=3 encoding='UTF-8'>
上面的示例中的“ name = 3”中的数字会有所不同,具体取决于代码,但始终为整数。
此代码段产生错误,但尚未打开任何文件,这与错误消息完全冲突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
有谁知道为什么发出此警告,尤其是在这种情况下,没有打开文件?
相关分类