如何从 python 中的标准输出中删除不需要的字符?
How to remove unnecessary characters from stdout in python?
我有这个脚本:
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 World\r\n"
预期输出:
Hello World
我该如何解决这个问题?我找到了很多关于这个的答案,但 none 帮助了我。
我正在使用 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 World\r\n".strip()
b'Hello World'
>>> b"Hello World\r\n".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)
我有这个脚本:
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 World\r\n"
预期输出:
Hello World
我该如何解决这个问题?我找到了很多关于这个的答案,但 none 帮助了我。 我正在使用 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 World\r\n".strip()
b'Hello World'
>>> b"Hello World\r\n".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)