是否可以返回我已离开的打印行?

时间:2017-03-12 06:50:19

标签: python-3.x printing

我目前正在尝试编写一个解析xml文件的函数。但我遇到了麻烦,我想知道是否有可能回到我已经离开的印刷线。

说我有字符串“基督是我的摇滚”,是否可以制作如下的输出

Crsimrc
hitsyok

也许我可能不得不以另一种方式处理我的问题,但同时我想知道这样的事情是否真的可能。

1 个答案:

答案 0 :(得分:0)

我不确定你要做什么,但如果你的目标是打印某种报告,一种自然的方法就是使用一个字符串列表,每行1个字符串。如果字符串列表被调用lines,那么使用print(s)代替lines.append(s) lines.append(str(s))如果s不是字符串。完成后,加入在'\n'

>>> lines = []
>>> lines.append('cat')
>>> lines.append('dog')
>>> print(''.join(lines))
catdog

您可以修改早期字符串,例如追加到他们的最后。例如, 如果要将字符拆分为不同的行,请执行以下操作:

>>> lines = ['','']
>>> s = 'this is a test'
>>> for i,c in enumerate(s):
    lines[i%2] += c


>>> print('\n'.join(lines))
ti sats
hsi  et

由于字符串是不可变的,如果要对前一行的各个字符进行大量更改,这种使用字符串列表的方法可能效率低下。对该想法的修改是将lines作为列表列表,其中每个内部列表是单字符串的列表。最终结果将是一个锯齿状的字符数组。 <{1}}将替换为

print(s)

当你有你想要的东西时,你可以通过以下方式打印出来:

lines.append(list(s))

如果由于某种原因你不想等到你的线完全组装后再打印它们,而是想看到以前的线被主动修改,考虑使用print('\n'.join(''.join(line) for line in lines)) Tkinter的GUI解决方案text box 1}}小部件。