我目前正在使用python 2.7,并且在编码这个想法时遇到了一些麻烦。我知道使用colorama或termcolor之类的库在python 2.7中的终端中为文本着色很容易,但是这些方法在我尝试使用的方式中并不起作用。

您会发现,我正在尝试创建一个基于文本的冒险游戏,该游戏不仅具有彩色文本,而且在这样做时还具有快速打字机风格的效果。我的打字机效果下降了,但是任何时候我尝试将其与着色库集成时,代码都会失败,从而给我原始的ASCII字符而不是实际的颜色。

import sys

from time import sleep

from colorama import init, Fore

init()

def tprint(words):

for char in words:

sleep(0.015)

sys.stdout.write(char)

sys.stdout.flush()

tprint(Fore.RED ="This is just a color test.")

如果运行代码,您会看到打字机效果有效,而颜色效果无效。有什么办法可以将颜色"嵌入"到文本中,以便sys.stdout.write可以显示颜色?

谢谢

编辑

我想我可能已经找到了解决方法,但是用这种方法更改单个单词的颜色有点痛苦。显然,如果在调用tprint函数之前使用colorama设置ASCII颜色,则它将以最后设置的颜色进行打印。

这是示例代码:

print(Fore.RED)

tprint("This is some example Text.")

我希望对我的代码进行任何反馈/改进,因为我真的很想找到一种在tprint函数中调用Fore库而不引起ASCII错误的方法。

TL; DR:在字符串前面加上所需的Fore.COLOUR,不要忘了在结尾加上Fore.RESET。

首先-很酷的打字机功能!

在您的解决方法中,您仅以红色不打印任何内容(即''),然后默认情况下您要打印的下一个文本也为红色。直到您Fore.RESET颜色(或退出),随后的所有文本都将变为红色。

更好的方法(使用pythonic吗?)是直接和显式地使用所需颜色构建字符串。

这是一个类似的示例,在发送给tprint()函数之前,先在字符串前添加Fore.RED并将Fore.RESET附加到字符串:

import sys

from time import sleep

from colorama import init, Fore

init()

def tprint(words):

for char in words:

sleep(0.015)

sys.stdout.write(char)

sys.stdout.flush()

red_string = Fore.RED +"This is a red string

" + Fore.RESET

tprint(red_string)    # prints red_string in red font with typewriter effect

为了简单起见,将tprint()函数放在一旁,这种颜色键入方法也适用于字符串的串联:

from colorama import init, Fore

init()

red_fish = Fore.RED + 'red fish!' + Fore.RESET

blue_fish = Fore.BLUE + ' blue fish!' + Fore.RESET

print red_fish + blue_fish    # prints red, then blue, and resets to default colour

new_fish = red_fish + blue_fish    # concatenate the coloured strings

print new_fish    # prints red, then blue, and resets to default colour

更进一步-构建具有多种颜色的单个字符串:

from colorama import init, Fore

init()

rainbow = Fore.RED + 'red ' + Fore.YELLOW + 'yellow ' \

+ Fore.GREEN + 'green ' + Fore.BLUE + 'blue ' \

+ Fore.MAGENTA + 'magenta ' + Fore.RESET + 'and then back to default colour.'

print rainbow    # prints in each named colour then resets to default

这是我对Stack的第一个答案,因此我没有发布终端窗口输出图像所需的声誉。

官方colorama文档提供了更多有用的示例和解释。希望我没有错过太多,祝你好运!

python打字机效果_使用Python中的打字机效果为终端文本着色相关推荐

  1. python模拟器 截图_在Linux中20个命令行终端模拟器截图对比

    终端模拟器是在一些其它显示结构内再现视频终端的计算机程序.换句话说,终端模拟器有能力使一个愚蠢的机器看起来像一个网络连接到服务器的客户端计算机.终端模拟器允许最终用户访问控制台及其应用程序,如文本用户 ...

  2. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  3. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  4. python廖雪峰_【Python】python中实现多进程与多线程

    进程与线程 进程(process)就是任务,是计算机系统进行资源分配和调度的基本单位[1].比如,打开一个word文件就是启动了一个word进程. 线程(thread)是进程内的子任务.比如word中 ...

  5. async python两个_【Python】python中实现多进程与多线程

    进程与线程 进程(process)就是任务,是计算机系统进行资源分配和调度的基本单位[1].比如,打开一个word文件就是启动了一个word进程. 线程(thread)是进程内的子任务.比如word中 ...

  6. python获取股指_用Python读取csv文件中的沪深300指数历史交易数据

    保存路径:D:\python\用Python读取csv文件中的沪深300指数历史交易数据 程序名称:readcsvhs300.py: 数据名称:沪深300指数历史交易数据.csv: 开发环境:Win7 ...

  7. python 机器人聊天_使用python构建您的第一个聊天机器人并将其集成到电报中

    python 机器人聊天 Did you know? 你知道吗? "Chatbots can cut operational costs by up to 30%. eCommerce ch ...

  8. python 烟花效果_新年快乐! python实现绚烂的烟花绽放效果

    做了一个Python的小项目.利用了一点python的可视化技巧,做出烟花绽放的效果,文章的灵感来自网络上一位大神. 一.编译环境 Pycharm 二.模块 1.tkinter:这个小项目的主角,是一 ...

  9. python selenium 下拉列表_从下拉列表中选择python selenium选项

    我试图使用下面的代码使用selenium(python)从网页上的下拉列表中选择一个选项.在from selenium import webdriver from selenium.webdriver ...

最新文章

  1. SAP QM Basic Steps to Create Dynamic Modification Rule
  2. Linux查看所有用户和组信息
  3. hashcode的理解
  4. java获取进程端口_查看进程的端口号
  5. spring源码阅读(1/4) - Bean生成
  6. Java通过Netty,实现Websocket消息推送简单几步搞定
  7. 攻城不易守城更难,汇付天下该如何守住打下来的“江山”?
  8. springboot启动自动关闭_App自动化测试用例格式和App的启动与关闭
  9. Bootstrap3 警告框插件的事件
  10. 随想录(被高估的busybox)
  11. 【leetcode】Copy List with Random Pointer (hard)
  12. dex2jar java 1.8_利用 dex2jar 反编译 dex文件
  13. Qcom平台添加 Camera 驱动(msm8953)
  14. cnn风格迁移_图像风格迁移详解
  15. 【专家独推】全网最全Matlab常用函数(包括按首字母进行分类)
  16. 通过瑞利判据对显微镜物镜进行分辨率研究
  17. c语言bellman算法,深入理解Bellman-Ford(SPFA)算法
  18. 利用计算机软件温度补偿,一种计算机硬件设备专用温度补偿系统的制作方法
  19. CSS 选择器 CSS3选择器
  20. 学了深度学习能干什么?飞桨内推岗位大曝光!

热门文章

  1. 计算机声音怎么转换,怎么把视频里的声音转换成文字?讯飞听见帮你搞定
  2. Vue单页面应用的概念以及优缺点
  3. 安卓玩机搞机技巧综合资源-----关闭miui广告 怎么省电 替换开机动画 LOGO 锁屏 壁纸等等【五】
  4. 算法与程序设计递归算法理解——汉诺塔
  5. java计算机毕业设计家庭安防系统源码+mysql数据库+系统+lw文档+部署
  6. Miracast @RTSP 交互[1]
  7. java Future用法
  8. 文心大模型api使用
  9. LLC谐振电路的拓扑结构与电路仿真
  10. zabbix使用宏自动发现网卡并实现监控(入职小灰)