Python写入文本文件时\b退格符无效,如何实现预期效果?
解决Python写入退格符
\b到文件无效果的问题 直接写入\b到文件只会保存ASCII退格控制字符,编辑器不会像终端那样解析这个字符来删除前一个内容,所以会显示奇怪符号。要得到预期的Shouldbenospace,需要先在字符串层面处理掉退格对应的内容,再写入文件。
解决方案1:直接写入目标字符串
如果内容是固定的,直接写最终想要的字符串即可:
with open("newFile.py", "w") as file: file.write("Shouldbenospace")
解决方案2:动态处理带\b的字符串
如果是动态生成的包含\b的字符串,可通过遍历解析来处理:
def process_backspaces(input_str): result = [] for char in input_str: if char == '\b': # 遇到退格符,移除最后一个字符(如果结果列表不为空) if result: result.pop() else: result.append(char) return ''.join(result) # 处理后写入文件 with open("newFile.py", "w") as file: raw_str = "Should \bbe \bno \bspace" cleaned_str = process_backspaces(raw_str) file.write(cleaned_str)
这段代码会遍历原始字符串,遇到\b就删除结果列表中最后一个已添加的字符,最终得到无空格的目标字符串,写入文件后打开就是Shouldbenospace。
内容的提问来源于stack exchange,提问作者Edmond Cheng
相关产品推荐
相关产品推荐

