python逐字输出 用于python发布文章、论文等
1.
第一种输出较慢 个人不怎么用
import time,sys
def replace(strname,*w):
for x in w:
strname=strname.replace(x[0],x[1])
return strname
def print(*w,t=0.1,end="\n",sepr=" "):
str_all=""
for x in w:
if w.index(x)==len(w)-1:
str_all+=str(x)
else:
str_all+=str(x)+sepr
str_all=replace(str_all,("\\红","\033[41m"),
("\\绿","\033[42m"),
("\\黄","\033[43m"),
("\\蓝","\033[44m"),
("\\紫","\033[45m"),
("\\青""\033[46m"),
("\\白","\033[47m"),
("\\黑","\033[40m"),
("\\","\033[0m"))
for y in str_all:
sys.stdout.write(y)
sys.stdout.flush()
time.sleep(t)
sys.stdout.write(end)
2.
from time import *
from os import *
from sys import *
def printer(line):
for i in line:
print(i,end="")
stdout.flush()
sleep(0.06)
print("")
printer('''
''')
更改sleep()函数内的数字可以自定义速度 数字越小则越快 数字为单字输出速度 例如sleep(1)则是1秒输出一个字符
3.
def example1(text):
for a in text:
sleep(0.1)
print(a,flush=True,end="")
stdout.flush()
print("",end="\n")
example1(" ")
代码解析:
2行 用for循环将要输出的内容全部遍历一遍,一次遍历一个字符,用a来表示字符。在这个例子中,第一次循环a="宇",第二次循环a="宙"。
3行 表示每个字符之间间隔的秒数,数字越小输出速度越快,可自行调整
4行 把单个字符(a)打印出来,并开启缓冲区。end=""表示在下一个字符打印时要跟在这个字符后面,而不是下一行。
5行 用sys库中的stdout输出缓冲区
6行 打印完text中所有内容后换行,如果不加这行,
example1("12345")
example1("qwq")
运行结果就是
12345qwq
而不是
12345
qwq
4.带颜色输出
def example2(text,color):
for a in text:
sleep(0.15)
print(color+a,flush=True,end="")
stdout.flush()
print("",end="\n")
example2(" ")
代码解析:
text同上,是你想要输出的内容color是表示颜色的字符串,为"\033[31m"或"\033[32m"等
也可以让color参数变成"31"、"32"等,这样就要变成print("\033["+color+"m"+a,flush=True)
color是"\033[31m"等表示颜色的符号,加在a前面可以改变字符的颜色