打印命令在python中不起作用

问题描述 投票:0回答:2

有人可以帮我解决我做错了什么。所以我需要在列表的列中打印出从文件读取的名称,如下所示:

admin

admin

admin

....

admin

但是我的代码继续像这样横向打印名称:

[['admin','admin','admin','admin','admin']

任何帮助都将不胜感激。

# Define a function

def parse_file():
    users = []
    filename = "auth.log"
    file = open(filename, 'r')
    string = "invalid user"

# Parsing auth.log file, detect invalid users, sort them and return the result

    for i in file:
        i = i.lower()
        pos = i.find(string)
        if pos >= 0:
            index = pos + len(string) + 1
            user = i[index:].split(" ")[0]
            users.append(user)
    users.sort()
    return users


if __name__ == "__main__":
    print(parse_file( ))
python
2个回答
1
投票

打印命令可以正常工作。它显示字符串列表。

您可能想要执行以下操作

>>> l = ['admin', 'admin', 'admin', 'admin', 'admin']
>>> print('\n'.join(l))
admin
admin
admin
admin
admin

请参见str.join(iterable)以了解“丢失”的功能。


0
投票

这只是打印您的用户列表。列表的格式为['a','b',...]您可以执行以下操作:

str.join(iterable)
© www.soinside.com 2019 - 2024. All rights reserved.