Python Script Output IMAGE
我正在写一个脚本,它将/etc/shadow输出到屏幕上的一个列表中,以呈现给查看者。然而,输出结果是一个长列表,而不是输出到每个换行符的列表。即使我尝试插入一个新行字符。我之前已经解决了这个问题,但将其更改为字典,然后在不工作时返回。我只希望它在每个影子文件行后打印:
代码:
with open('/etc/shadow', 'r') as file:
lines = [line.rstrip() for line in file]
print(lines)
输出:(无法附加的图像......)
预期输出是列表中每个元素之间的一个新行。然而,它只输出为每个列表之间的一个单行。我知道这是我做for循环的方式,或者至少这是我的猜测。然而,我无法理解它。(脚本新手)。谢谢。
1条答案
按热度按时间okxuctiv1#
lines
是来自文件的list
行。当你使用print(lines)
时,你打印的是一个列表。您可以打印
for
循环中的每一行:或者你可以把
join
和\n
所有的行组合成一个字符串:将行连接成一个字符串需要分配大量的内存,你可以通过在读取时输出行来将数据从文件中“流”出来,这样你就不必一次将它们都保存在内存中:
该方法可以读取任意大小的文件,因为它不会尝试同时在内存中保存所有行。