Python脚本读取/etc/shadow后列表未换行显示问题求助
问题描述
我正在编写Python脚本读取/etc/shadow文件,想把内容以列表形式展示,但输出是一串用逗号分隔的长文本,每个元素没有单独换行。之前解决过这个问题,后来改成字典实现又改回列表,现在需要让每个shadow文件的行输出后自动换行。
当前使用的代码:
with open('/etc/shadow', 'r') as file: lines = [line.rstrip() for line in file] print(lines)
实际输出是逗号分隔的列表元素,期望每个元素单独占一行。
解决方案
方法1:循环遍历列表逐个打印
遍历生成的lines列表,逐个打印元素,print()默认会在每个元素后添加换行符:
with open('/etc/shadow', 'r') as file: lines = [line.rstrip() for line in file] for line in lines: print(line)
方法2:用换行符拼接列表后打印
将列表元素通过换行符\n拼接成单个字符串,再一次性打印:
with open('/etc/shadow', 'r') as file: lines = [line.rstrip() for line in file] print('\n'.join(lines))
方法3:直接读取并打印每行(无需存储列表)
如果不需要保留lines列表做后续操作,可以直接在读取文件时打印每行,省去列表生成步骤:
with open('/etc/shadow', 'r') as file: for line in file: print(line.rstrip()) # 去掉原行末尾的换行符,避免出现多余空行
内容的提问来源于stack exchange,提问作者LinuxTea
相关产品推荐
相关产品推荐

