如何在python中从stdout中删除不必要的字符



我有这个脚本:

lec_name = request.POST['selected_name']
out = run([sys.executable,'//Projects//altg//algorithm.py',lec_name], shell=False, stdout=PIPE)
print(out.stdout)

这个剧本很好用。但我没有得到正确的输出。

输出:

b"Hello Worldrn"

预期输出:

Hello World

我该如何解决这个问题?我找到了很多答案,但都无济于事。我使用的是Python 3.7.4,Django 3.0.1

您可以使用函数strip来获取删除了前导空格和尾部空格的数组的副本。如果您确定只需要删除尾部空格,请使用rstrip

注意b"Hello World">是字节数组,而不是字符串,如果您想将其转换为字符串,可以使用decode("utf-8"(

pi@raspberrypi:/tmp $ python3
Python 3.7.3 (default, Dec 20 2019, 18:57:59) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> b"Hello Worldrn".strip()
b'Hello World'
>>> b"Hello Worldrn".strip().decode("utf-8") 
'Hello World'
>>> 

您可以使用选项universal_newlines=True。请使用以下代码。如果你使用这个,你会得到预期的结果为Hello World。

out = run([sys.executable,'//Projects//altg//algorithm.py',lec_name], shell=False, stdout=PIPE, universal_newlines=True)

最新更新