这是一个不寻常的要求,我将不胜感激! :)
我有一个python变量,为简单起见,我们可以称之为'output'
当我打印输出时,我得到以下内容:
b"word1\nword2\nword3\n"
如果我能打印,我会喜欢它
word1
word2
word3
word4
我试图拆分变量,并将其输入到for循环,但没有成功。我很乐意将输出写入操作系统中的文件,并使用bash来解决问题。
谢谢!
答案 0 :(得分:2)
对我来说,听起来你的字符串已经转义换行符。 str.split
在这里不会帮助您,也不会str.splitlines
。你需要解码转义:
>>> print s
word1\nword2\nwored3\n
>>> print s.decode('string-escape')
word1
word2
wored3
答案 1 :(得分:1)
您需要执行此操作(有关详细信息,请参阅string.split
函数)...
for word in output.decode('utf-8').split('\n'):
print word
而且你不需要印刷文字 - 你可以随心所欲地做任何事情。该循环将迭代output
中的每一行。
答案 2 :(得分:0)
听起来您正在使用Python 3并调用等效的
>>> 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
答案 3 :(得分:0)
假设使用Python3。您有一个字节字符串(字节),不同于unicode字符串(str)。
bstring = b"word1\nword2\nword3\nword4"
换行符'\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()
。您可以在Python manual
答案 4 :(得分:-1)
output = b"word1\nword2\nword3\nword4\n"
for w in output.split():
print(w)