鱼C论坛

 找回密码
 立即注册
查看: 2197|回复: 17

转义字符输出

[复制链接]
发表于 2019-7-18 01:25:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
定义name = 'Vincent\rchen'
如何将name原字符输出:Vincent\rchen,
而不用输出成:
Vincent
chen
我使用print(r'%s'%name)输出:chenent

>>> name ='Vincent\rchen'
>>> name
'Vincent\rchen'
>>> print(r'%s'%name)
chenent


注:不用说print(r'Vincent\rchen'),因为name可能不是这么短的字符串。

请大神指导下,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-8-31 08:02:29 | 显示全部楼层
  1. print(name.replace('\r', '\\r'))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-31 08:04:30 | 显示全部楼层
是不是感觉。。。我把这么久的问题挖出来回答
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-31 08:24:27 | 显示全部楼层

如果我不知道这段文件里包含哪些带\的,怎么办?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-31 08:25:06 | 显示全部楼层
zltzlt 发表于 2019-8-31 08:04
是不是感觉。。。我把这么久的问题挖出来回答

这开阔了我一个思路,非常感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-31 08:25:22 | 显示全部楼层
lucky邪神 发表于 2019-8-31 08:24
如果我不知道这段文件里包含哪些带\的,怎么办?
  1. name = name.replace('\n', '\\n')
  2. name = name.replace('\r', '\\r')
  3. name = name.replace('\t', '\\t')
复制代码


不停这样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-31 08:28:14 | 显示全部楼层

埋头苦干,还是要锻炼身体,才能耐力持久
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-31 08:29:01 | 显示全部楼层
lucky邪神 发表于 2019-8-31 08:28
埋头苦干,还是要锻炼身体,才能耐力持久

把所有转义字符都这样替换一遍
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-2 21:37:32 | 显示全部楼层
本帖最后由 快速收敛 于 2019-9-2 21:41 编辑
  1. \r
复制代码
为回车,归位到首行
当print('Vincent\rchen')打印时遇到\r,光标回到首行,接着打印,chen会覆盖掉Vinc,输出chenent
有个时钟的案例就是这样的
  1. import time

  2. while True:
  3.     print(time.strftime('%Y/%m/%d-%H:%M:%S', time.localtime()), end="\r")
  4.     time.sleep(1)
复制代码
可以在终端运行下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-3 07:49:52 | 显示全部楼层
快速收敛 发表于 2019-9-2 21:37
为回车,归位到首行
当print('Vincent\rchen')打印时遇到\r,光标回到首行,接着打印,chen会覆盖掉Vinc, ...

这个end=‘\r'表示打印完了的末尾输出一个’\r'


我是想完整输出'Vincent\rchen' 好比我把'\r'换成其他转义符\n,\b等,zltzlt给出在print前将字符串中所有的转义字符都再加一个’\‘
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-3 08:24:54 | 显示全部楼层
lucky邪神 发表于 2019-9-3 07:49
这个end=‘\r'表示打印完了的末尾输出一个’\r'

我以为你问的是为啥会输出不完整,解决的话,zltzlt的没毛病
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-3 21:01:19 From FishC Mobile | 显示全部楼层
有一个办法是给字符串前面加个r 比如a=r‘ab\rcd’,这个r代表了原生字符,所有东西都不会被转义,挺好用的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-3 22:30:40 | 显示全部楼层
facevoid 发表于 2019-9-3 21:01
有一个办法是给字符串前面加个r 比如a=r‘ab\rcd’,这个r代表了原生字符,所有东西都不会被转义,挺好用的

没用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-4 09:41:56 | 显示全部楼层
本帖最后由 facevoid 于 2019-9-4 09:45 编辑



                               
登录/注册后可看大图


我试着可以的呀。。。你看看是不是引号没有用英文引号

图片不知道有没有用。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-11 03:15:13 | 显示全部楼层
今天倒腾知道个repr可以解解决
  1. >>> name='aksjd\nsdf\r\balsjdfklahf'
  2. >>> name
  3. 'aksjd\nsdf\r\x08alsjdfklahf'
  4. >>> print(name)
  5. aksjd
  6. sdf
  7. alsjdfklahf
  8. >>> print(repr(name))
  9. 'aksjd\nsdf\r\x08alsjdfklahf'
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-11 09:22:23 | 显示全部楼层
lucky邪神 发表于 2019-9-11 03:15
今天倒腾知道个repr可以解解决

你说得对 !!!
repr 可以解决 !!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-11 09:43:22 | 显示全部楼层
\b 没有处理好。

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-21 19:27:00 | 显示全部楼层
facevoid 发表于 2019-9-4 09:41
我试着可以的呀。。。你看看是不是引号没有用英文引号

图片不知道有没有用。。


看楼主的描述,直接 r 不行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-16 23:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表