Skip to main content
 首页 » 编程设计

python之打印列表内容的问题

2025年05月04日15exmyth

我在使用 Python(2.6.2) 时遇到了一个有点奇怪的问题我得出的结论是 Vista 端口中的一个错误(我无法在 XP 或 Linux 中复制它)。

我有一个用户列表、加密密码和他们的主机,我将它们存储在一个更大的列表中(它充当一种数据库)。

除了单个用户数据的存储方式与组的存储方式不一致外,这一切都运行良好且花花公子。

由 'create_user' 方法创建

['localhost', 'demo', 'demouserpasswordhash']

由 'create_database' 方法创建

['\xff\xfel\x00o\x00c\x00a\x00l\x00h\x00o\x00s\x00t\x00', '\x00d\x00e\x00m\x00o\x00', '\x00d\x00e\x00m\x00o\x00u\x00s\x00e\x00r\x00p\x00a\x00s\x00s\x00w\x00o\x00r\x00d\x00h\x00a\x00s\x00h\x00\r\x00\n']

考虑到它的代码非常简单,我不明白为什么要这样做:

# ----- base functions 
 
def create_user ( user_data ): 
    return user_data.split(":") 
 
def show_user ( user_data ): 
    print "Host: ", user_data[0] 
    print "Username: ", user_data[1] 
    print "Password: ", user_data[2] 
    print 
 
def create_database ( user_list ): 
    database = [] 
    for user in user_list: 
        database.append( create_user( user ) ) 
    return database 
 
def show_database( database ): 
    for row in database: 
        show_user( row ) 
 
# ----- test area 
 
users = open( "users.txt" ) 
 
 
test_user = create_user( "localhost:demo:demouserpasswordhash" ) 
db = create_database( users ) 
 
print db[0] 
print test_user 
 
# ----- 

有没有人对此有类似的经历,还是只有我一个人?

请您参考如下方法:

您的文件 users.txt 是 UTF-16 格式,但您以 ASCII 格式打开它。

要么改成ASCII,要么这样打开:

import codecs 
users = codecs.open( "users-16.txt", "r", "utf-16" )