Pandas读取Excel后打印内容无法换行,如何解决?
解决Pandas读取Excel后输出内容无法换行的问题
问题核心
你遇到的问题主要出在两个地方:
- 直接拼接Pandas Series生成的带
\n的内容,在HTML环境中不会自动解析为换行,且最初的代码存在语法错误; - 循环生成列表后直接打印列表对象,输出的是列表结构而非格式化后的文本。
修正后的解决方案
方案1:用Pandas apply 高效生成格式化文本
这种方法比iterrows更高效,适合处理大数据量:
import pandas as pd file = r"..\test.xlsx" try: df = pd.read_excel(file) # 逐行生成格式化字符串 formatted_lines = df.apply(lambda row: f"{row['Date']} | {row['Time']} | {row['Description']}", axis=1) # 用换行符连接所有行 result = '\n'.join(formatted_lines) print(result) # 如果要输出到HTML,二选一: # 1. 用<pre>标签保留原始格式 html_output = f'<pre>{result}</pre>' # 2. 把换行符替换为HTML换行标签<br> # html_output = result.replace('\n', '<br>') except OSError: print("Impossible to read", file)
方案2:修复循环遍历的代码
如果偏好循环方式,需要修正列表拼接后的打印逻辑:
import pandas as pd file = r"..\test.xlsx" try: df = pd.read_excel(file) test = [] for index, row in df.iterrows(): # 补上之前遗漏的Time列 x = f"{row['Date']} | {row['Time']} | {row['Description']}\n" test.append(x) # 拼接列表中的字符串后再打印,而非直接打印列表 print(''.join(test)) # 输出到HTML的处理同方案1 except OSError: print("Impossible to read", file)
关键说明
- 语法修正:最初的代码中
test =后的续行缩进错误,正确续行需保持缩进一致(用反斜杠时,下一行要对齐); - HTML换行问题:普通文本的
\n在HTML中不会被渲染为换行,必须用<pre>标签包裹内容(保留原始格式),或者将\n替换为<br>标签; - 列表打印问题:直接
print(test)会输出列表的结构(带方括号、引号),必须用''.join(test)把列表中的字符串合并成完整文本再打印。
内容的提问来源于stack exchange,提问作者Stacky
相关产品推荐
相关产品推荐

