我有这个脚本:
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)