莫名其妙的ResourceWarning:未关闭的文件<_io.TextIOWrapper名称= 3

我正在完成将代码从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

有谁知道为什么发出此警告,尤其是在这种情况下,没有打开文件?


侃侃无极
浏览 1187回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python