Python2中如何将所有文本(含长文本)打印为单行?
在Python 2里实现单行打印的实用方法
嘿,在Python 2里要把内容都打在同一行,其实分两种场景来处理就很清晰了,我给你一步步讲:
一、多个打印操作输出到同一行
Python 2里的print是个语句(不是Python 3里的函数),默认打完就换行。要让多次打印的内容凑到一行,有两个常用办法:
- 带逗号的print语句:在每个
print的末尾加个逗号,这样它会用空格代替换行符。比如你示例里的内容,可以这么写:
不过这个方法会在每个内容之间加空格,如果你要完全无缝拼接,就用下面的方法。print "����", print "JFIF", print "H", print "H", print "��", print "C", print "��", print "C" - 用sys.stdout.write():直接操作标准输出,它不会自动加任何换行或空格,完全按你传入的内容输出,精准控制:
import sys sys.stdout.write("����") sys.stdout.write("JFIF") sys.stdout.write("H") sys.stdout.write("H") sys.stdout.write("��") sys.stdout.write("C") sys.stdout.write("��") sys.stdout.write("C") # 要是最后需要换行,加一句sys.stdout.write("\n")就行
二、长文本直接打印成一行
如果是一段已经存在的长文本(比如带空格、换行的原始内容),你只需要先把文本里的多余分隔符(空格、换行符)去掉,再打印就好。拿你的示例来说:
# 假设原文本是带空格的字符串 original_text = "���� JFIF H H �� C �� C" # 去掉所有空格(如果是换行符就用.replace("\n", "")) processed_text = original_text.replace(" ", "") print processed_text # 输出就是你要的连续一行:����JFIFHH��C��C
要是你的长文本是从文件里读的,那就一次性读取所有内容,再清理掉换行和多余空格:
with open("your_file.txt", "r") as f: long_text = f.read() # 替换掉所有换行符和空格,按需调整 clean_text = long_text.replace("\n", "").replace(" ", "") print clean_text
另外还有个小技巧:如果你想用上Python 3风格的print函数(可以指定end参数),可以导入__future__模块,这样写法更灵活:
from __future__ import print_function print("����", end="") print("JFIF", end="") print("HH��C��C")
这里end=""告诉print不要自动加换行,而是用空字符串结尾,完美实现单行打印。
内容的提问来源于stack exchange,提问作者Thammakorn Puttacharoenlarp
相关产品推荐
相关产品推荐

