code="""
[--]
{start}
\ok\
"waw"
the-end
"""
for i in code.split('\n') :
print i
Result:
[--]
{start}
\ok"waw"
the-end
我无法访问用户键入的代码。 ' \'在\ ok \结束时给我错误的结果。我怎样才能正确分裂()?
答案 0 :(得分:1)
问题是,正如评论中所提到的,字符串文字后跟换行符中的\\
将转义该换行符,因此实际上code
的值已经
[--]
{start}
\ok"waw"
the-end
您可以参考this获取有关Python中字符串文字的更多信息。
ok
和"waw"
之间没有换行符。问题实际上并不在于您的代码,而在于您的示例输入。你说你无法访问'代码',因为用户会修改它 - 我只能假设你不是指用户修改程序来提供输入。我对如何获取输入的建议是让用户提供单独的文件。这样,字符串将被解释为一个字符流,并且单独使用,Python不会尝试进行任何转义。为简单起见,我已对文件名进行了硬编码,但最终可能也是一个好主意,以便使其灵活(从stdin获取输入,让用户提供文件名等等。)。
文件input.txt
包含:
[--]
{start}
\ok\
"waw"
the-end
代码:
import sys
with open("input.txt", "r") as in_file:
for line in in_file:
sys.stdout.write(line)
正如预期的那样,代码输出
[--]
{start}
\ok\
"waw"
the-end
大概你想用线条做更多的事情,因为这只是复制了输入。