subprocess.check_output在python 3中不起作用,但在python 2.7中起作用

我有以下代码,为我提供了python 2.7的正确结果,但是一旦我移植到python 3,该代码就无法按预期工作。我可以在变量submodule_commit中看到正确的结果,但是它们像b'xxxxxxx\nyyyyyyy'一样,并且拆分不再起作用。 我不明白,这里哪里错了。 我的期望是包含子模块的列表。

command = "git submodule status | awk '{print $1}'"
submodule_commit = subprocess.check_output(command,shell=True)
submodule_commit = submodule_commit.split('\n')
sword_smile 回答:subprocess.check_output在python 3中不起作用,但在python 2.7中起作用

我将字节字符串转换为普通字符串,现在可以正常工作了。

command = "git submodule status | awk '{print $1}'"
submodule_commit = subprocess.check_output(command,shell=True)
submodule_commit = str(submodule_commit,'utf-8')
submodule_commit = submodule_commit.split('\n')
,

请尝试执行submodule_commit.split(b'\n')b'xxxxxxx\nyyyyyyy'是一个字节字符串,并且您的splitting方法还应该将一个字节字符串输入。要将'\n'转换为字节字符串,请改写b'\n'。我让我知道是否可行。 :)

本文链接:https://www.f2er.com/3168663.html

大家都在问