Python 换行符上的拆分字节变量
这是一个不寻常的请求,我希望得到一些指导!) 我有一个python变量,为了简单起见,我们可以称它为“output” 当我打印输出时,我得到以下信息:Python 换行符上的拆分字节变量,python,variables,for-loop,Python,Variables,For Loop,这是一个不寻常的请求,我希望得到一些指导!) 我有一个python变量,为了简单起见,我们可以称它为“output” 当我打印输出时,我得到以下信息: b"word1\nword2\nword3\n" 如果我能打印,我会喜欢的 word1 word2 word3 word4 我尝试拆分变量,并将其馈送到for循环,但没有成功。我很乐意将输出写入操作系统中的一个文件,并使用bash解决这个问题 谢谢 您将需要执行此操作(有关更多详细信息,请参阅函数) 你们不需要打印word,你们可以用它做任何
b"word1\nword2\nword3\n"
如果我能打印,我会喜欢的
word1
word2
word3
word4
我尝试拆分变量,并将其馈送到for循环,但没有成功。我很乐意将输出写入操作系统中的一个文件,并使用bash解决这个问题
谢谢 您将需要执行此操作(有关更多详细信息,请参阅函数)
你们不需要打印word,你们可以用它做任何你们想做的事情。这个循环将在
输出中的每一行上迭代
,对我来说,听起来你的字符串已经转义了换行符str.split
在这里帮不了你,str.splitlines也帮不了你。您需要解码转义:
output = b"word1\nword2\nword3\nword4\n"
for w in output.split():
print(w)
>>> print s
word1\nword2\nwored3\n
>>> print s.decode('string-escape')
word1
word2
wored3
听起来您正在使用Python3并调用
>>> print(b"foo\nbar\nbaz")
b'foo\nbar\nbaz'
这是动作中的str(bytes)
:字节字符串的(Unicode)字符串表示形式。通过首先对其进行解码,您将获得Python 3将更优雅地打印的内容
>>> print(b"foo\nbar\nbaz".decode('utf-8'))
foo
bar
baz
假设Python 3。您有一个字节字符串(bytes),与unicode字符串(str)不同 换行符
'\n'
与u'\n'
(unicode字符串)相同,不同于b'\n'
。
如果您只对拆分感兴趣,可以使用b'\n'
作为分隔符:
for w in bstring.split(b'\n'):
print(w)
这将打印字节字符串b'word1'
。。。
如果需要常规字符串,则必须在拆分之前或之后解码,如其他解决方案所示:
for w in bstring.decode().split('\n'):
print(w)
这使用默认编码(通常为utf-8),如果需要不同的编码,可以将其作为参数传递给
decode()
。如果打印\n
,您可以在无参数调用拆分中找到更多信息。如果打印\n
,则不只是拆分\n
(这里可能有问题,也可能没有问题),这意味着实际字符串包括\\n
@jeff\h您使用字节而不是字符串有什么原因吗?我在收到错误之前尝试过拆分:输出中的I。拆分('\n'):类型错误:需要类似字节的对象,而不是'str',我使用的是变量名输出,这就是它的创建方式:output=ssh\u stderr.read()+ssh\u stdout.read()有趣,所以我应该尝试:print(output.decode('\\n'))?:)这回答了你的问题吗?
for w in bstring.split(b'\n'):
print(w)
for w in bstring.decode().split('\n'):
print(w)